日常开发中,可能会遇到需要将develop分支最后一次提交(最后一次提交会包含多个文件)某一个文件(或者多个文件,)代码合并到master分支,进行发布。如果直接用marge 就会将最后一次提交的所有文件全部合到master不符合要求。
例如:将test分支上UserEntity.java 文件合并到 develop分支上
解决方案一:
1. 先在test进行一次提交,然后切换到 develop分支
// -- 用于分割文件,这里使用文件的绝对路径 ,如果文件在项目的根路径下,直接写文件名即可
2. git checkout --patch test -- D:/project/test/src/com/ratel/entity/UserEntity.java
ratel@DESKTOP-HRDC9NJ MINGW64 /d/project/test (develop)
$ git checkout --patch test -- D:/project/test/src/com/ratel/entity/UserEntity.java
diff --git b/src/com/ratel/entity/UserEntity.java a/src/com/ratel/entity/UserEntity.java
index 847fcda..f2591f0 100644
--- b/src/com/ratel/entity/UserEntity.java
+++ a/src/com/ratel/entity/UserEntity.java
@@ -15,4 +15,5 @@ public class UserEntity {
private String hobby;
private String phone;
// 测试git
+ //测试git01
}
Apply this hunk to index and worktree [y,n,q,a,d,e,?]? y //如果确定没问题 一直输入y即可,如果有问题输入n 即可中止操作。
ratel@DESKTOP-HRDC9NJ MINGW64 /d/project/test (develop)
可能会出现文件如果项目中存在一个 test 文件目录(和分支同名的文件目录)就需要使用 文件前加 – 进行区分,否则会报如下错误:
$ git checkout --patch test src\com\ratel\entity\UserEntity.java
fatal: ambiguous argument 'test': both revision and filename
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
解决方案二:
1. 先在test进行一次提交,然后切换到 develop分支
2. 如果只是简单的将test分支的文件UserEntity.java copy到develop分支上,直接执行下面命令,(这样操作会覆盖掉develop分支同名文件,develop分支UserEntity.java 做的更改将会被覆盖)
git checkout test -- D:/project/test/src/com/ratel/entity/UserEntity.java
版权声明:本文为weter_drop原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。