git命令行总结,以及term3笔记
红色代表add之前,绿色代表add之后
gcf -> git config --global user.email "邮箱"。
git config --global user.name "名字"。
git config --list 显示Git的配置信息;
gcl -> git clone <repo> <dir> 拉取远程仓库,可以指定位置
gst -> git status 显示修改的内容以及在缓存区的状态
gss -> git status -s 只显示修改的文件
ga -> git add <file> 添加到缓存区
gaa -> git add .或--all 添加全部有改动的文件到缓存区
gd -> git diff 查看尚未add的缓存内容
gdca -> git diff --cached 查看已缓存的内容
-> gd head 查看head里的所有修改的内容
-> gd --stat 显示尚未缓存的文件
grh -> git reset 撤销已缓存的文件
-> grh <file> 单独撤销文件
gcmsg -> git commit -m "" 提交到本地库
gp -> git push 推送到git远程仓库
gl -> git pull 从远程仓库拉取
gup -> git pull -rebase
gstl -> git stash list 拉取仓库前,缓存代码列表
gstp -> git stash pop stash@{0} 载入此缓存,并移除
gstaa -> git stash apply 载入此缓存
gstd -> git stash drop 移除此缓存
gstc -> git stash clear 清除缓存
gb -> git branch <name> 创建分支
gco -> git checkout 检出分支
gcm -> git checkout master
gcd -> git checkout develop
gcb -> git checkout -b <name> 创建并检出到此分支
gm -> git merge <name> 合并此<name>到当前分支下
grb -> git rebase <name> 把当前分支合并到此<name>下
gr -> git remote 远程仓库
grv -> git remote -v 远程仓库地址
gcp -> git cherry-pick name
git层级:
第一层:未缓存,也即未add前,状态为:未缓存
第二层:暂存区,add后,commit前,状态为:已缓存;
第三层:本地仓库,commit后,push前,本地版本库,状态为:已提交;
第四层:远程仓库,push后,github云端刷新,状态为:已推送。
总结:只要没有push,本地可以随便玩。
一、Git提交的基本流程
(1)git config --global user.email "邮箱"。
git config --global user.name "名字"。
git config --list 显示Git的配置信息;
简拼:gcf
(2)git clone <repo> <directory> 拉取远程仓库;
简拼:gcl
(3)git
显示内容在缓存区里的状态;
简拼:gst
git status -s 只显示有改动的文件;
简拼:gss
(4)git add <file> 添加单个文件;
简拼:ga
git add .(--all) 缓存全部内容;
简拼:gaa
(5)git diff 尚未add缓存的改动,add前应该先diff一下,看一下修改的缓存内容;
简拼:gd
git diff --cached 查看已add的缓存的内容;
简拼:gdca
git diff head 查看head里已缓存的与未缓存的所有改动;
简拼:gd head
git diff --stat 显示尚未缓存的文件;
简拼:gd --stat
(6)git reset 取消全部add到缓存里的内容;
简拼:grh
git reset <file> 取消此文件add到缓存里的内容;
简拼:grh file
(7)git commit -m "注释" 提交到本地库;
简拼:gcmsg
git commit --amend 修改最后一次提交的内容,先add需要提交的文件。
简拼:无
(8)git push 提交到云端;
简拼:gp
(9)git rm <file> 删除文件,如果已经添加到add中,则需要加-f
git rm --cached <file> 移除缓存区里的内容,暂时感觉与git reset head 没什么不同
git rm -r * 删除此目录下的内容
git mv <file> <file> 移动或者重命名
二、更新远程的方式:
第一种
(1)git stash 先将本地修改存储起来(后来居上),再拉取文件,
(2)拉取远程融合的两种方式:
git pull 拉取当前分支远程库中的内容==fetch merge;
简拼:gl
git pull --rebase 拉取当前分支远程库中的内容==fetch rebase;
简拼:gup
(3)融合本地stash:
git stash list stash的列表;
简拼:gstl
git stash pop stash@{0} 恢复编号里的本地内容,同时移除此编号;
简拼:gstp stash@{0}
git stash apply stash@{0} 恢复编号里的本地内容,不移除此编号;
简拼:gstaa
git stash drop stash@{0} 删除此编号存储;
简拼:gstd
git stash clear 清空全部;
简拼:gstc
(4)gp提交完
第二种
1.把当前修改commit
2.退回修改之前的节点
3.拉取远程最新节点
4.用rebase或者merge来合并自己的本地节点与远程节点
5.提交push
我用的:
(1)git stash
(2)gl
(3)git stash pop stash@{0}
(4)gaa
(5)gcmsg
(6)gp
三、分支管理
(1)git branch name 创建分支;
简拼:gb
git branch -d name 删除本地分支;
简拼:gbd
git push origin :name 删除远程分支,与-d配合,两步相继执行,删除远程;
简拼:gp origin :name
git branch -f master HEAD~<num> 把master移动到从HEAD所在位置向上移动num步;
简拼:gb -f master HEAD~
git branch -f master hash码-> 把master移动到hash码所在的位置;
简拼:gb -f -f master hash码
(2)git checkout name 切换分支;
简拼:gco
特例:
alias gcm='git checkout master'
alias gcd='git checkout develop'
git checkout -b name 创建并切换到此分支;
简拼:gcb
git checkout name^ 从name的所在位置,向上移动一个提交记录,跟几个^,就向上移动几步;
git checkout name~<num> 从name的所在位置,向上移动num个提交记录。
git checkout HEAD~<num> 从HEAD的所在位置,向上移动num个提交记录。
以下两个待理解:
git checkout -b 分支origin/master 分支跟踪另一分支
git branch -u origin/master 分支
(3)git merge name 合并此<name>分支到当前所在分支下;
简拼:gm
特例:
alias gmom='git merge origin/master'
(4)git rebase name 把当前分支合并到此<name>分支之下;
简拼:grb
特例:
alias grbm='git rebase master'
alias grbd='git rebase develop'
git rebase name1 name2 把<name2>合并到此<name1>分支之下;
git rebase -i HEAD~2 交换提交记录的顺序;
简拼:grbi
四、撤销提交
git reset HEAD~1 本地撤销到上一步记录
简拼:grh
git revert HEAD 远程撤销到上一步
简拼:无
五、远程库
git remote 查看远程库;
简拼:gr
git remote -v 远程库的地址
简拼:grv
六、其他(重要)
git rebase -i HEAD~2 交换提交记录的顺序;
简拼:grbi
git cherry-pick name 把指定记录移动到当前的记录之下;
简拼:gcp
git tag "describe" master 为master设置tag;
简拼:
示例:
alias gts='git tag -s'
alias gtv='git tag | sort -V'
git describe master 对master的描述;
git log -num 查看提交记录;