git clone -b remote_dev http://1*ce.git local_dir // -b: 指定分支拉代码
方法一:git checkout -b 本地分支x origin/远程分支名x // 本地新建并自动切换分支x。本地分支会和远程分支建立映射关系。
方式二:git fetch origin 远程分支名x:本地分支名x //本地新建分支x但不自动切换,需手动checkout。本地分支不会和远程分支建立映射关系。
git branch --set-upstream-to=origin/remote local
git remote add origin gy(为空时默认master) git@.....git
git branch –a本地和远程 git branch –r 远程 git branch 本地 git branch –D local删除 git commit --amend 修改msg |
git checkout –b dev origin/remote 新建分支并切换 git branch dev 新建分支不切换 git checkout dev分支切换 |
git push origin local:remote 删除远程仓库:$ git push origin --delete remoteDev
git pull origin dev(远程分支名) [git pull --rebase] |
---------git reset --hard 撤销到某次提交----------- git revert 撤销某次提交--------------合并代码beyond compare--------------------- git reset --hard commit_id 后git push –f //远程分支退到指定commit 注:回退风险,防止回退别人的代码 git revert –n cmid 解决冲突后add/commit/push |
git rebase -i 【IdBeg】【IdEnd】 // 前开后闭,将本地多次提交合并为一个以简化提交历史。否则git rebase master时会多次解决冲突(最坏情况下,每个提交都会相应解决一个冲突)。
git rebase master // 将master同步到本地,可能要手动解决冲突。【解决冲突后试运行,用git-add后无需commit,只要执行: git rebase --continue】
git rebase -i head~3 合并前三个,dev分支上合并提交,然后切换到master
git cherry-pick bc09e8d8 将dev上某次提交内容 合入到master分支上 。 【解决冲突后add/git cherry-pick --continue】
--mixed 不删除工作空间改动代码,撤销commit,且撤销git add . 操作. 默认参数.
--soft 不删除工作空间改动代码,撤销commit,不撤销git add .
--hard 删除工作空间改动代码,撤销commit,撤销git add . 注意完成这个操作后,就恢复到了上一次的commit状态。
2.本地分支超前:解决冲突后git-
add
,然后不用-m
参数直接git commit
(
:wq
保存退出)。
=================================================================================================================
git fetch只会将本地库所关联的远程库的commit id更新至最新. 本地库并没有变化,HEAD没有变化.
git pull会将本地库更新至远程库的最新状态,HEAD也相应指向最新的commit id
git pull发生冲突时, 先用git stash命令把当前修改过的工作存储到栈里面,此时代码还原到了未修改时的样子
再git pull拉取代码. 再git stash pop把栈里面的代码还原,这时如果再冲突,需要手动解决.
原文:https://www.cnblogs.com/bsszds930/p/12055872.html