Git在分支机构结账时删除文件

时间:2017-01-19 23:04:59

标签: git version-control

我有一个包含分布在多个文件中的代码的目录。代码不受版本控制。所以,我在顶级创建了一个git repo。但是,由于目录中有多个文件,我只想将我想要修改的文件添加到我的git repo中。我git ignore了其余的文件。

但是,这是我遇到的问题..一开始,我的回购没有文件。然后,我在foo.cpp上检查foo.hppbranch1。然后,在不移动HEAD的情况下,我创建branch2并同时签入bar.cppbar.hpp。现在,如果我结帐branch1,git会删除文件foo.cppfoo.hpp

我猜git会清理文件,因为它不应该在branch1中存在。你能告诉我我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果您想在bar.cpp中添加bar.hppbranch2,则需要先切换到branch2,这意味着HEAD需要指向branch2。当您将文件添加到分支时,您应该使用git addgit commit将文件添加到版本控制。假设你的git结构如下:

/top level directory
      |___ .git      
      |___ /subfolder
                     |___ foo.cpp
                     |___ foo.hpp
                     |___ bar.cpp
                     |___ bar.hpp
                     |___ …

整个步骤应该是这样的:

git init
git checkout -b branch1
git add subfolder/foo.cpp subfolder/foo.hpp
git commit -m 'commit message'
git checkout -b branch2
git add subfolder/bar.cpp subfolder/bar.hpp
git commit -m 'commit message'

现在无论您检查哪个分支,相关分支中的文件都不会丢失。

相关问题