我有一个初学者的问题。
如果我有2个分支,master和testbranch,我切换到testbranch,然后通过FTP上传新文件,这是否会影响master和testbranch?
我尝试这样做,当我运行“git st”时,更改会显示在master和testbranch中。
有没有办法隐藏来自master的更改,或者git是如何工作的?
提前致谢
答案 0 :(得分: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
答案 1 :(得分:1)
听起来就像你说“切换”意味着你正在使用git checkout
命令。此命令在存储库中的已提交版本之间切换。如果您“FTP上传”一个新文件(我假设您的意思是将文件添加到您的沙箱中,或覆盖现有文件),除非您提交它,否则它不会影响已提交的版本。您是否计划通过FTP上传将您放入沙箱的文件(我推测)提交?因为这是它影响分支的唯一方式。
一般情况下,当您使用master
时,不能影响testbranch
分支机构的提交。除非您rebase
,否则提交将保持完全一致,或以其他方式修改存储库本身。
答案 2 :(得分:0)
如果您知道ftp上传的日期,可以使用git whatchanged
来检索修改文件列表。
你的命令看起来像这样:
git whatchanged --since 'dd/mm/yyyy' --until 'dd/mm/yyyy' --oneline --name-only --pretty=format: | sort | uniq