git - 开始跟踪未跟踪的远程文件/目录

时间:2016-09-08 07:03:39

标签: git git-merge git-reset

我想这样做:

mkdir some_repo
cd some_repo
git init
git touch dummy.txt
git commit -m 'dummy commit'
git remote add -f some_other_remote_repo path/to/.git
git merge --no-ff --no-commit merge remotes/some_other_remote_repo/master

没有进入git status我看到类似的内容:

new: f1/some.txt
new: f1/some11.txt
new: f2/some2.txt
new: f3/some3.txt

所以现在我只想添加特定目录及其内容。我可以这样做:

git reset f2/
git reset f3/

现在正在运行git status

new: f1/some.txt
new: f1/some11.txt

untracked: f2/some2.txt
untracked: f3/some3.txt

所以我做了我需要的工作,我可以提交并删除本地添加的f2f3目录。但是如果以后我决定我现在要跟踪例如f2目录及其内容怎么办?

不,如果我再次运行git merge --no-ff --no-commit merge remotes/some_other_remote_repo/master,它会说一切都是最新的。所以它现在忽略那些未跟踪的目录。他们是一种告诉git只跟踪远程特定目录的方法吗?

1 个答案:

答案 0 :(得分:2)

解决方案

再次合并远程分支。这会(再次)拉入文件。

声明

我认为这是非常糟糕的做法。在您第一次合并已删除的文件后,您的git历史记录中已成功合并 - 但是,情况显然并非如此。

建议

相反,您应该在some_feature之上创建一个新分支remote/master,删除这些文件,然后合并some_feature。 如果您决定要所有文件,请完全合并remote/master

如果文件some.txtsome1.txt,...都添加在不同的提交中,您也可以选择这些提交,如果它们只是少数。