相关疑难解决方法(0)

如何撤消Git中最近的提交?

我不小心将错误的文件提交给Git,但我还没有将提交推送到服务器.

如何从本地存储库中撤消这些提交?

git version-control undo pre-commit git-commit

2万
推荐指数
103
解决办法
826万
查看次数

将本地存储库分支重置为远程存储库HEAD

如何将本地分支重置为远程存储库中的分支?

我做了:

git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)

但当我跑一个git status,

On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
      modified:   java/com/mycompany/TestContacts.java
      modified:   java/com/mycompany/TestParser.java
Run Code Online (Sandbox Code Playgroud)

你能告诉我为什么我有这些'修改'?我没有碰过这些文件?如果我这样做,我想删除它们.

git undo

3488
推荐指数
22
解决办法
283万
查看次数

如何将Git托管项目中的所有本地更改还原到以前的状态?

我有一个项目,我跑了git init.几次提交之后,我做了git status哪些告诉我一切都是最新的,并且没有本地更改.

然后我做了几个连续的更改,并意识到我想把所有东西扔掉,然后回到原来的状态.这个命令会为我做吗?

git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)

git revert git-checkout

1830
推荐指数
16
解决办法
138万
查看次数

如何在git中按名称命名和检索存储?

我总是觉得你可以通过这样做来藏匿一个名字git stash save stashname,你可以稍后申请git stash apply stashname.但似乎在这种情况下,所有发生的事情都stashname将被用作藏匿描述.

有没有办法真正命名藏匿?如果没有,你会建议什么实现相同的功能?基本上我有一个小的藏匿,我会定期申请,但不想总是要寻找git stash list它的实际藏匿号码.

git git-stash

1276
推荐指数
16
解决办法
44万
查看次数

如何使用'git reset --hard HEAD'恢复到之前的提交?

我知道Git会跟踪我对我的应用程序所做的更改,并且它会保留给他们,直到我提交更改,但这里是我挂断的地方:

当我想恢复到之前的提交时,我使用:

git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)

而Git回归:

HEAD is now at 820f417 micro
Run Code Online (Sandbox Code Playgroud)

然后,我如何将硬盘上的文件恢复为之前的提交?

我接下来的步骤是:

git add .
git commit -m "revert"
Run Code Online (Sandbox Code Playgroud)

但我的硬盘上没有任何文件发生变化......

我在做什么是对还是错?

git head git-revert git-reset

898
推荐指数
2
解决办法
275万
查看次数

gitignore和"以下未跟踪的工作树文件将被结帐覆盖"

所以我在.gitignore文件中添加了一个文件夹.

一旦我做了git status它告诉我

# On branch latest
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试更改分支时,我得到以下内容:

My-MacBook-Pro:webapp marcamillion$ git checkout develop
error: The following untracked working tree files would be overwritten by checkout:
    public/system/images/9/thumb/red-stripe.jpg
    public/system/images/9/original/red-stripe.jpg
    public/system/images/8/thumb/red-stripe-red.jpg
    public/system/images/8/original/red-stripe-red.jpg
    public/system/images/8/original/00-louis_c.k.-chewed_up-cover-2008.jpg
    public/system/images/7/thumb/red-stripe-dark.jpg
    public/system/images/7/original/red-stripe-dark.jpg
    public/system/images/7/original/DSC07833.JPG
    public/system/images/6/thumb/red-stripe-bw.jpg
    public/system/images/6/original/website-logo.png
    public/system/images/6/original/red-stripe-bw.jpg
    public/system/images/5/thumb/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/5/original/logocompv-colored-squares-100px.png
    public/system/images/5/original/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/4/thumb/DSC_0001.JPG
    public/system/images/4/original/logo.png
    public/system/images/4/original/DSC_0001.JPG
    public/system/images/4/original/2-up.jpg
    public/system/images/3/thumb/logo2.gif
    public/system/images/3/original/logo2.gif
    public/system/images/3/original/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/3/original/11002000962.jpg
    public/system/images/2/thumb/Profile Pic.jpg
    public/system/images/2/original/Profile Pic.jpg
    public/system/images/2/original/02 Login Screen.jpg
    public/system/images/1/original/Argentina-2010-World-Cup.jpg
Please move or remove them before you can switch branches.
Aborting
Run Code Online (Sandbox Code Playgroud)

这就是我的.gitignore文件的样子:

.bundle
.DS_Store
db/*.sqlite3
log/*.log
tmp/**/* …
Run Code Online (Sandbox Code Playgroud)

git gitignore git-merge

796
推荐指数
15
解决办法
103万
查看次数

675
推荐指数
5
解决办法
56万
查看次数

各种方法删除本地Git更改

我刚刚克隆了一个git存储库并检出了一个分支.我努力了,然后决定删除我所有的本地更改,因为我想要原始副本.

简而言之,我必须执行以下两个命令来删除我的本地更改

git checkout .

git clean -f
Run Code Online (Sandbox Code Playgroud)

我的问题是,

(1)这是摆脱当地变化的正确方法,或者请让我知道正确的方法.

(2)我们什么时候使用,git reset --hard因为即使没有这个命令也可以重置

谢谢

*解决方案:主要编辑:03/26:* 用git特定术语[tracked/untracked/staged/unstaged]替换了许多含糊不清的术语

当我们进行本地更改时,只有三类文件:

类型1.分阶段跟踪文件

键入2.未分级跟踪文件

键入3. Unstaged UnTracked文件,即UnTracked文件

  • 分阶段 - 那些被移动到临时区域/添加到索引
  • 跟踪 - 修改过的文件
  • UnTracked - 新文件.总是没有分期.如果上演,则意味着他们被跟踪.

每个命令的作用:

  1. git checkout . - 仅删除未分级跟踪文件[类型2]

  2. git clean -f - 仅删除未分级的UnTracked文件[类型3]

  3. git reset --hard - 仅删除分阶段跟踪和未分阶段跟踪文件[类型1,类型2]

  4. git stash -u - 删除所有更改[类型1,类型2,类型3]

结论:

很明显,我们可以使用其中之一

(1) combination of `git clean -f` and `git reset --hard` 
Run Code Online (Sandbox Code Playgroud)

要么

(2) `git stash -u`
Run Code Online (Sandbox Code Playgroud)

达到预期的效果.

注意:存储,因为这个词的意思是"在指定的地方安全地,秘密地存储(某物)".这总是可以使用git stash pop.因此,在上述两个选项之间进行选择是开发人员的号召.

谢谢Christoph和FrederikSchøning.

编辑:03/27

我认为值得把" …

git git-bash

609
推荐指数
5
解决办法
54万
查看次数

git reset --hard HEAD留下未跟踪的文件

当我跑步时git reset --hard HEAD,它应该重置为你所拉的原始版本,据我所知.不幸的是,它留下了文件,git status显示了一个未跟踪文件的大列表.

你怎么告诉git"只是把它带回到最后一次拉动中,没有更多,没有更少"?

git

536
推荐指数
6
解决办法
16万
查看次数

由于我已删除的大文件,无法推送到GitHub

目前我有

  1. 空GitHub回购
  2. SSH服务器仓库(主)
  3. 本地回购

SSH服务器repo是最新的repo(生产站点)所以我从那里做了一个Git克隆到本地.然后我试着去做git pushGitHub.

一切都很好,但后来它说了一些关于filename.gz对于GitHub来说太大了.我不需要这个文件所以我运行了几个Git命令来从Git缓存中删除它然后推回到SSH服务器.

我没有在本地看到大文件,但它仍然在SSH服务器上,即使没有git diff返回任何内容并且git push返回"Everything is latest-date" - 尽管当我尝试推送时,文件在本地仓库中不可见GitHub我仍然得到它的错误

remote:错误:文件fpss.tar.gz是135.17 MB; 这超过了GitHub的文件大小限制为100 MB

我按照GitHub帮助中列出的 "修复问题"中的步骤进行了操作,那么这应该不够吗?

当文件不在本地或在git status/diff/push中列出时,文件如何仍然在以太网中?

git github git-push

219
推荐指数
8
解决办法
8万
查看次数