我想这样做:
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
所以我做了我需要的工作,我可以提交并删除本地添加的f2
和f3
目录。但是如果以后我决定我现在要跟踪例如f2
目录及其内容怎么办?
不,如果我再次运行git merge --no-ff --no-commit merge remotes/some_other_remote_repo/master
,它会说一切都是最新的。所以它现在忽略那些未跟踪的目录。他们是一种告诉git只跟踪远程特定目录的方法吗?
答案 0 :(得分:2)
再次合并远程分支。这会(再次)拉入文件。
我认为这是非常糟糕的做法。在您第一次合并已删除的文件后,您的git历史记录中已成功合并 - 但是,情况显然并非如此。
相反,您应该在some_feature
之上创建一个新分支remote/master
,删除这些文件,然后合并some_feature
。
如果您决定要所有文件,请完全合并remote/master
。
如果文件some.txt
,some1.txt
,...都添加在不同的提交中,您也可以选择这些提交,如果它们只是少数。