我的机器上有一个目录,我存储了GitHub的所有项目.
我打开了其中一个并在我的机器上进行了本地更改.
该项目搞砸了,现在我想丢弃我所做的所有更改,并从存储库中提取最新版本.
我对GitHub相对较新(使用Git Shell).
会git pull足够吗?
我是否需要做额外的事情以丢弃在本地进行的更改?
Cod*_*ody 69
git reset是你想要的,但我会添加一些额外的东西你可能会觉得有用,其他答案没有提到.
git reset --hard HEAD将您的更改重置为您本地仓库已跟踪的上次提交.如果你做了一个提交,没有把它推到GitHub,并且想把它扔掉,请参阅@absiddiqueLive的回答.
git clean -df将丢弃您可能添加的任何新文件或目录,以防您想要丢弃它们.如果您尚未添加任何内容,则无需运行此操作.
git pull(或者如果你在GitHub客户端使用git shell)git sync将从GitHub 获得新的更改.
从未来的方式编辑:
我在另一周更新了我的git shell,并注意到git sync默认情况下不再定义该命令.对于记录,键入git sync等同git pull && git push于bash.我发现它仍然有用,所以它在我的bashrc中.
abs*_*ive 16
运行以下命令
git log
Run Code Online (Sandbox Code Playgroud)
从这里你将得到你的最后一次推送提交哈希键
git reset --hard <your commit hash key>
Run Code Online (Sandbox Code Playgroud)
小智 8
我弄乱了我的 git local master 分支,其中本地 master 是从远程本地转移的。
要使 git local 和 master 同步,请按照以下步骤操作。
git fetch --全部
git reset --hard origin/master
如果您在任何其他分支,您可以使用分支名称,如下所示
怎么运行的?
git fetch 从远程下载最新版本,而不尝试合并或变基任何内容。
git reset 将 master 分支重置为您刚刚获取的内容
--hard 选项更改工作树中的所有文件以匹配 origin/master 中的文件
如果您想在与远程分支同步之前保留本地更改。
重置前创建备份分支
除了上面的答案,还有焦土法。
rm -R <folder>
Run Code Online (Sandbox Code Playgroud)
在 Windows shell 中,命令是:
rd /s <folder>
Run Code Online (Sandbox Code Playgroud)
然后你可以再次签出项目:
git clone -v <repository URL>
Run Code Online (Sandbox Code Playgroud)
这肯定会删除任何本地更改并从远程存储库中提取最新的。使用 rm -R 时要小心,因为如果您输入错误的路径,它会删除您的好数据。例如,绝对不要这样做:
rm -R /
Run Code Online (Sandbox Code Playgroud)
编辑:修复拼写并增加重点。
| 归档时间: |
|
| 查看次数: |
93463 次 |
| 最近记录: |