赞
踩
如果在本地分支进行开发,这时候切到远程主分支,本地分支会被删除,(第4条对出现这个问题的原因做了详细说明)当然可以找回,但不建议这么做,创建的分支不会被删除,所以进行fea开发时,首先创建分支
在主分支上创建一个分支进行fea开发,fea开发完后,重新拉取后发现主分支已经向前推进了几个版本,这时候可以进行
①merge
这种做法比价常见,这样git的提交记录就会很多分支齐头并进,融汇胶合
②rebase
切到fea分支,右击主分支,选择 rebase current branch on (master),意思是fea分支从当前的base切换到新的base,
切到master 分支,右击分支,merge到fea分支
删除fea分支
推送master分支
这样git提交记录就是一条直线
fea已经开发好,切到主分支,右击fea分支,cherry pick commit,解决冲突,然后手动commit,或者选择自动生成一次commit,
这样就将从分支的多次提交合并为一次提交,推送master 分支,删除fea分支
cherry-pick --no-commit a496807bd63dc73dd996d280738bc1acd6215d8c
切到git的远程分支时3个选项:
创建本地同名分支
创建本地异名分支
只是切到远程分支
git的远程分支不能用来修改,只是用来做参考,做备份
checkout --force "origin/release_dev_mfg"
HEAD is now at 88fedefd7 revert link script
但是当前分支却是 no branch
意思是只能切到本地分支?
远程分支是远程服务器上的分支,克隆一个仓库后,应没有一个本地分支,如果要做开发,需要在本地分支上进行,所以需要check out 到一个分支,而这时候就需要使用切到远程分支的3个选项了
在本地你可以checkout到这些复制到本地的这些远程origin/branch ,但是你无法对这些branch进行修改
复制这些远程branch到本地又不允许修改的目的,是为了让你知道本地的branch与位于远程主机的branch有哪些改动
所以,单纯地切到远程分支是没有意义的
1. fetch --progress
2. checkout -b "branch_test" 创建新分支
-b <branch> create and checkout a new branch
-B <branch> create/reset and checkout a branch
--force force checkout (throw away local modifications)
没有参数,只是切到本地分支,忽略本地改动
3. branch -d "branch_test" 删除分支
branch -D "branch_test" 强制删除分支
4. add *** 暂存文件
5. commit -m "update xxx"
6. rebase "433881"
7. merge asdf
8. cherry-pick #实际是进行多次的merge,假如被cherry pick的分支上有多次修改了同一行,则会出现冲突
9.git switch -c <new-branch-name> 创建分支的另一个方法
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。