我的情况:我克隆了一个存储库(内核的源文件)。然后检查一个分支,并构建内核。二进制文件已存储在工作树的子目录中。现在,我想放弃所有本地更改,包括构建的二进制文件,并恢复到克隆存储库的不同分支。
特别是,我认为这个答案很有用。在我看来,最好的方法是
git checkout -f <desired branch of the original cloned repository>
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,这应该强制结帐,丢弃本地更改(如果我错了,请纠正我)。Git 已成功签出,但我仍然在工作树的同一子文件夹中找到之前构建的二进制文件。
将您的分支设置为与远程分支完全匹配,包括清除未跟踪的文件,可以通过三个步骤完成:
git fetch origin
git reset --hard origin/<branch name>
git clean -f -d
Run Code Online (Sandbox Code Playgroud)
说明: git fetch获取存储库的最新版本。git reset丢弃分支上对跟踪文件的任何本地更改。git clean从本地副本中删除所有未跟踪的二进制文件。
作为参考,如果您想让 Git 跟踪您构建的二进制文件,您可能应该创建一个.gitignore文件。有关详细说明,请参阅忽略文件,但对于 Java 程序,您可以使用以下内容。
# Compiled files
bin/
*.class
*.jar
Run Code Online (Sandbox Code Playgroud)
由于 git 不会跟踪构建生成的二进制文件,因此它们不被视为本地更改。
git clean -xdf
应该很好地为你消灭它们。
| 归档时间: |
|
| 查看次数: |
12870 次 |
| 最近记录: |