git新建分支
git branch dev-xxx
git checkout dev-xxx
等同于:
git checkout -b dev-xxx
// 同步到远程
git push origin dev-xxx
git合并指定commit
git log //查看提交的日志,复制要合并的那个分支的commit id
git checkout master // 切换到要合并的分支上
git cherry-pick COMMIT_ID//复制要合并的commit id
git push origin master //提交到远程分支
git cherry-pick --abort // 取消cherry-pick
git修改分支名
1.重命名分支
git branch -m oldBranch newBranch
如果修改的分支已经推送到远程,则继续执行下面的操作:
2.删除远程分支
git push --delete origin oldBranch
3.上传新命名的本地分支
git push origin newBranch
4.本地分支与远程分支关联
git branch --set-upstream-to origin/newBranch
3、4部命令等同于:
git push -u origin newBranch
git撤销merge
在当前分支
git reset --hard commit_id
此时,本地为回退分支,远程仍为被改变的分支
git push origin HEAD --force
【git push -f】
git删除分支
- 删除本地分支
git branch -d <local_branch>
-d改成-D强制删除
- 删除远程分支
git push <remote_name> -d <remote_branch>
先列出所有远程分支:
git branch -r
git push origin -d <remote_branch>
从一个git仓库迁移代码到另一个git仓库
B是一个空仓库,除了默认的master分支,没有其他分支。把A的分支迁移到B.
- 进入A工程的branch1分支上,获取最新代码
- git remote ⇒ origin
- git remote add origin2 master(origin2可以替换成其他)
- git remote set-url origin2 xxx(xxx是B仓库的地址ssh)
- git checkout -b branchB1(branchB1是基于A工程branch1建的新分支)
- git push origin2
迁移多个分支重复1,5,6操作就行
git报错:git Permission denied, please try again.
- 检查SSH Key是否存在
cd ~/.ssh
ls
- 获取SSH Key(如果存在id_rsa.pub 或 id_dsa.pub 文件,跳过此步。)
如果不存在,生成:
- 先查看git邮箱地址
git config --list - 再生成SSH Key
ssh-keygen -t rsa -C “your_email@example.com”
- 将公钥复制到git页面profile setting > SSHKeys中
cat ~/.ssh/id_rsa.pub
git报错:fatal: refusing to merge unrelated histories
在你操作命令后面加–allow-unrelated-histories