我对git和我的回购有问题。
首先我写例子
git checkout Proj1
# modify index.html
git commit -am "Modify Index.html"
git checkout Proj2
git show Proj1:index.html > index.html
git commit -am "Modify Index.html"
git checkout Proj1
这是我将同一文件内容保存在两个分支中的方法。
当然,如果提交只包含我想要同步的文件,我可以使用cherry-pick。
How can we sync files between two branches in git?
您是否有解决此问题的简短解决方案
也许写一些别名?
我可以在哪里保存文件列表以进行同步?
答案 0 :(得分:0)
如果您不关心历史记录,那么您可以在分支2上单独提交,其中包含与Proj1中提交提示完全相同的文件:
git checkout Proj2
git checkout Proj1 -- index.html
git commit -am "Modify Index.html"
从本质上讲,这意味着在Proj1分支中查看文件是完全正确的。
git checkout --
表示在短划线后提供文件名(或路径)。如果您想要更改存储库中的某些文件并保留其他文件,这也很有用。
然后,如果你愿意,你也可以重用你在Proj1中提交的提交消息,如下所示:
git checkout Proj2
git checkout Proj1 -- index.html
git commit -a -C Proj1
Git commit -C
表示重用您已有的提交评论。
来自git documentation "git checkout":
git checkout
[-p|--patch] [<tree-ish>] [--] <pathspec>
当 或
--patch
,git checkout不切换分支。它 从索引文件或更新工作树中的命名路径 来自命名(通常是提交)。[...]
git checkout with或
--patch
用于恢复已修改或。{ 从索引或替换中删除其原始内容的路径 带有命名内容的路径(最常见的是a 提交-ISH)。
来自git documentation "git commit"
git commit -C <commit>
--reuse-message=<commit>
获取现有的提交对象,并重用日志消息和 创建时的作者信息(包括时间戳) 提交。