0

我有一个初学者问题。

如果我有 2 个分支,master 和 testbranch,我切换到 testbranch,然后通过 FTP 上传一个新文件,这会影响 master 和 testbranch 吗?

我尝试这样做,当我运行“git st”时,更改都会出现在 master 和 testbranch 中。

有什么方法可以隐藏 master 的更改,或者这就是 git 的工作方式?

提前致谢

4

3 回答 3

1

听起来当您说“切换”时,您的意思是您正在使用该git checkout命令。此命令在存储库中已提交的版本之间切换。如果您“FTP 上传”一个新文件(我假设您的意思是将文件添加到沙箱,或覆盖现有文件),除非您提交它,否则它不会影响提交的版本。您是否打算通过 FTP 上传来提交您放入沙箱的文件(我想)?因为这是它影响分支的唯一方式。

通常,您master在处理testbranch. 除非您提交,否则提交将完全保持提交状态rebase,或者以其他方式修改存储库本身。

于 2012-05-10T15:45:00.463 回答
1

当您添加未跟踪的文件时,您仍然可以签出其他分支,该文件将保留。想象一下相反的情况,如果 Git 在切换分支时将其删除,则该文件将丢失,因为它已提交!

但是git status仍然会说该文件未跟踪,但这并不意味着您的分支受到影响。只是 Git 告诉您分支记录和工作副本之间的状态不同。

然后你有两个选择:

  • 添加并提交文件:切换到master时会被移除,切换回时会重新出现testbranch
  • 不要提交,只需隐藏状态并返回master

 git stash --include-untracked
 #file is saved in a temporary place, and removed
 git checkout master
 #do stuff...
 git checkout testbranch
 # git stash pop
 #file is restored
于 2012-05-10T15:43:14.467 回答
0

如果您知道 ftp 上传的日期,您可以使用它git whatchanged来检索修改文件列表。

你的命令看起来像这样:

git whatchanged --since 'dd/mm/yyyy' --until 'dd/mm/yyyy' --oneline --name-only --pretty=format: | sort | uniq
于 2016-05-10T07:58:49.160 回答