1 代码操作相关
克隆到本地
git clone http://...
拉取代码到本地
git pull
舍弃本地更改
git checkout .
commit代码
git commit -am "....."
提交代码
git pull
舍弃某文件的更改
git restore xxxx
2 分支操作相关
查看当前分支
git branch
查看该repo所有分支
git branch -a
创建本地分支 并切换到新本地分支
git checkout -b nameOfTheNewBranch
将新分支信息推送到github
git push origin HEAD -u
重命名分支 oldbranch 为 newbranch
git branch (-m | -M) <oldbranch> <newbranch>
使用-M表示强制重命名。
如果需要重命名远程分支,推荐的做法是:
删除远程待修改分支
push本地新分支名到远程
3 撤回push到远程的代码
首先
git log
选择需要回撤的版本
commit bc07480025bca168e2136064d795f2bb56eab999
Author: xxxcxy <yy_z3em@163.com>
Date: Fri Apr 10 14:09:47 2020 +0800
执行
git reset --soft bc07480025bca168e2136064d795f2bb56eab999
或
git reset --hard bc07480025bca168e2136064d795f2bb56eab999
前者只改变HEAD的指向,不改变本地代码,我们使用git status依然可以看到,同时也可以git commit提交。后者会直接改变本地源码,不仅仅指向变化了,代码也回到了那个版本时的代码,所以使用是一定要小心,想清楚。
最后推送到远程:
git push origin 分支 --force
3 删除分支
我现在在dev20181018分支上,想删除dev20181018分支
1 先切换到别的分支:
git checkout dev20180927
2 删除本地分支:
git branch -d dev20181018
3 如果删除不了可以强制删除:
git branch -D dev20181018
4 有必要的情况下,删除远程分支(慎用):
git push origin --delete dev20181018
4 合并分支
想将dev分支合并到master分支,操作如下:
1、首先切换到master分支上
git checkout master
2、如果是多人开发的话 需要把远程master上的代码pull下来
git pull origin master
//如果是自己一个开发就没有必要了,为了保险期间还是pull
3、然后我们把dev分支的代码合并到master上
git merge dev
4、然后查看状态及执行提交命令
git status
On branch master
Your branch is ahead of 'origin/master' by 12 commits.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
//上面的意思就是你有12个commit,需要push到远程master上
最后执行下面提交命令
git push origin master
5 不同仓库合并分支
你每次往A仓库拉取B仓库的代码的时候这样做。
先执行下边这句,只执行一次。如果本地仓库删掉了,才需要再次重新执行。
git remote add B https://github.tools.xxxx.git
每次需要更新A的时候,这么merge就可以了
git fetch B
git merge --squash B/branch --allow-unrelated-histories
git commit -am "Merge B repo's branch"
git push
6 删除Tag
eg: tag名21.11.0-M106
git tag -d 21.11.0-M106 删除本地
git push origin :21.11.0-M106 删除远程
7 cherry pick
https://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html
8 配置两套git
https://www.jianshu.com/p/48413e033de4