git + ftp上传

时间:2012-05-10 15:41:12

标签: git ftp

我有一个初学者的问题。

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

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

有没有办法隐藏来自master的更改,或者git是如何工作的?

提前致谢

3 个答案:

答案 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