git命令一览(如果你没有耐心看文字,那么就直接看图吧)
1.常用
config
- git config --global user.name “Your Name”
- git config --global user.email “[email protected]”
init
- 初始化git
clone
- 下载项目
status
- 查看状态
checkout
-
创建分支
- git checkout -b branch1
-
切换分支
- git checkout branch2
pull
-
git pull
- git fetch + git merge
push
-
推送/创建远程分支
- git push -u origin branch1
-
删除远程分支
- git push origin --delete branch1
- git push origin :branch1
-
推送分支
推送branch本地更新到release远程分支上,在推送之前,需要git pull origin release,在branch本地分支拉取release远程更新。
注意:就目前我们的代码和分支管理,不太推荐在release和master_pre上使用,因为我们的个人分支都是基于master的
- git push origin branch1:release
add
-
修改&删除(update)
- git add -u
-
更新&新增&删除
- git add -A
- git add .
commit
-
正常提交
- git commit -m ‘message’
-
合并上一个提交
-
git commit --amend
可以修改commit message,且git图形化界面上只能看到最新的一次commit信息
-
merge
-
git merge branch1
- 把branch1合并到当前分支
log
-
打印信息
-
git log
-
git log --oneline
-
git log --pretty=oneline
-
git log --graph --pretty=oneline --abbrev-commit
-
-
比较分支commit信息
当我们忘记自己分支上的代码是不是已经合到master,或者想看一下有没有合到master的commit时,就很好用了
- git log branch1 ^master
reflog
-
所有git操作的记录者
- git reflog
2.stash
适用于:你临时接bug,需要放下手上的工作,切换分支做其他的场景,这时你把它们stash起来,改好临时bug就可以回来继续了。
标签:你的秘密小仓库
查看暂存区信息
- git stash list
暂存
- git stash
- git stash save ‘message’
取出暂存
- git stash pop
- git stash apply stash@{0}
删除暂存
- git stash drop stash@{0}
- git stash clear
查看暂存
-
git stash show stash@{0}
- 修改哪个文件
-
git stash show stash@{0} -p
- 修改了的内容
恢复stash误删
- step1:git fsck --lost-found
- step2: git show
- step3: git merge
3.rebase
适用于:一个功能有n个commit提交的时候。看着n多个无用commit就让人很难受,不仅不利于review代码,版本上线有问题,还不好排查。(所以说rebase是代码提交规范的小能手,也是强迫症的福音)
标签:强迫症福音
注意:rebase是一个危险的命令,如果在共同开发的分支上使用,会导致丢失提交记录。
建议:在只有自己开发的分支上操作
看一下这篇文章,你会学到更多:http://jartto.wang/2018/07/08/git-commit/(代码规范,commit)
git rebase -i [commitID]
-
进入vi编辑模式
有几个命令需要注意一下:
p, pick = use commit
r, reword = use commit, but edit the commit message
e, edit = use commit, but stop for amending
s, squash = use commit, but meld into previous commit
f, fixup = like “squash”, but discard this commit’s log message
x, exec = run command (the rest of the line) using shell
d, drop = remove commit- pick§
- squash(s) 命令
git rebase --continue
- 处理冲突-继续
git rebase --edit-todo
- 关闭了vi-继续
git rebase --abort
- 撤销rebase
4.revert
git revert -n [commitID] + git commit -m ‘message’
git revert [commitID]
- 回退[commitID]这个版本的代码,其他保持不变
多个撤销
-
git revert -n [commitID1]…[commitID3]
- 撤销连续commit,至commitID1
-
git revert -n [commitID1]
git revert -n [commitID4]- 撤销不连续commit,1和4
终止revert
-
git cherry-pick --abort
- revert 之后,还没有提交,可以终止
5.reset
适用于:提交错误,代码回退。
reset的操作其实就是把指针指到你要到达的那个commitID(或版本),后面的commit(或版本)不再出现在git树中,但是只要你能找回id(git reflog),即使已经reset掉的commit,也可以用它找回来
标签:想走就走,想回就回
-
git reset --soft [commitID]
-
git reset --hard [commitID]
-
git reset --mixed HEAD^
-
git reset HEAD~1
master 分支在 GitLab 里是被保护的,无法强推
- rebase + revert
6.remote
git remote add origin
- 远程库的http或ssh 把本地库与远程库链接
7.补充:创建新项目并关联git仓库
下载node(npm),xcode(git),安装vue,vue-cli,webpack.
vue init webpack ‘myproject’
- 创建vue 项目
npm install
- 加载依赖
git init
- 初始化git
git add .
- add 所有文件
git commit -m ‘master’
- 提交所有代码
git remote add origin
- 关联远程库
git push -u origin mater
- 把代码推送到远程库
XMind - Trial Version