是不是可以在没有合并公共文件的情况下结帐?

时间:2012-03-01 07:00:58

标签: git-checkout

我的目标是让一个文件具有相同的名称,但在不同的分支中有不同的实现。例如,我想在具有详细模式的分支中开发,而另一个在静默工作。或者,一个分支使用列表,但另一个分支使用哈希。与prior question类似。

在我的情况下,更改位于具有相同名称的文件中。不幸的是,从一个分支到另一个分支的结账合并了相同名称的文件(内容?)。在这种情况下,发布版本继承了我希望保持独立的详细打印语句。

我学会并成功使用stash save;查看; (编辑其他分支,添加,提交);退房;并存储应用(以清除由结帐导致的合并更改)。它有效,但手册的示例(中断的工作流程,部分提交)表明这不是预期的工作流程。为详细创建孤立分支会破坏历史记录。是否有另一种方法可以在分支之间进行切换而不会对具有相同名称的文件进行意外更改?

更新我无法再复制此行为,尽管在提交此处之前已经看过五次。它曾用于显示以下文字。但是,我想这个问题应该被关闭。

$ git checkout master
M   Test.java
Switched to branch 'master'

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找以下命令:

git update-index --assume-unchanged <file>

撤消运行:

git update-index --no-assume-unchanged <file>

答案 1 :(得分:0)

从“ "Difference Between 'assume-unchanged' and 'skip-worktree'”开始,我会同意:

git update-index --skip-worktree -- a file
git update-index --no-skip-worktree -- a file
  

skip-worktree在指示git永远不要触摸特定文件时很有用。
  这对于已经跟踪的配置文件很方便。