git - 开始跟踪未跟踪的远程 files/directories

git - start tracking untracked remote files/directories

假设我这样做:

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 仅跟踪远程特定目录的方法吗?

解决方案

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

免责声明

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

推荐

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

如果文件 some.txtsome1.txt、... 都添加到不同的提交中,如果它们只有几个,您也可以选择这些提交。