linux下使用git的常用命令行
1. 常用的命令行1.1 克隆git仓库-Bash 代码1git clone repo_address1.2 创建分支,取个相关的名字master是当前分支:-Bash 代码1git checkout -b feature_amaster不是当前分支:-Bash 代码1git checkout -b featur...
1. 常用的命令行
1.1 克隆git仓库
-
Bash 代码
1 | git clone repo_address |
1.2 创建分支,取个相关的名字
master是当前分支:
-
Bash 代码
1 | git checkout -b feature_a |
master不是当前分支:
-
Bash 代码
1 | git checkout -b feature_a master |
使用checkout -b,在创建分支后,会自动切换到对应分支
1.3 修改/提交代码
查看当前修改状态:
-
Bash 代码
1 | git status |
添加所有修改文件(无删除文件):
-
Bash 代码
1 | git add . |
添加所有修改文件(有删除文件):
-
Bash 代码
1 | git add --all |
添加指定文件:
-
Bash 代码
1 | git add the/ file /path |
添加已忽略文件:
-
Bash 代码
1 | git add -f the/ file /path |
提交,在弹出的编辑器中编写提交记录
-
Bash 代码
1 | git commit |
修改最后一个提交(可以增删文件,修改文件内容,修改提交信息等等)
-
Bash 代码
1 | git commit --amend |
1.4 同步库上代码
-
Bash 代码
1 | git fetch upstream master & git rebase upstream/master |
如果产生冲突,解决冲突并继续rebase。(这里没有展开讲,细节比较多)
1.5 推上fork库
-
Bash 代码
1 | git push origin feature_a |
如果fork上没有feature_a分支,这步操作会在fork上创建feature_a分支
1.6 在fork库上,基于feature_a分支提交pull request
网站上操作
1.7 pull request被合入后的处理
1.7.1 将最新代码同步到master分支(包括本地库和fork库)
-
Bash 代码
1 | git checkout master |
2 | git fetch upstream master & git rebase upstream/master |
3 | git push origin master |
1.7.2 打扫战场,删除不用的分支
删除fork上的feature_a,以及本地对应的remote/feature_a分支
-
Bash 代码
1 | git push origin :feature_a |
删除本地的feature_a分支
-
Bash 代码
1 | git branch -d feature_a |
1.8 重复1,处理下一个特性/issue
在1~6中间,也可以随时打断。重新进行1~6,开发其它特性如果有未提交代码,简单处理可以先提交,再拉新分支开发
2. 常用的命令别名
git有些命令行死长死长的,比如"git fetch upstream master & git rebase upstream/master"。所以定义一些自己习惯的别名还是很有必要的。当然有些别名缩写为了尽量减少输入量,可能导致命令含义不是特别清晰,这个东东仁者见仁,仅供参考。
git自带的别名系统主要通过 'git config --global alias.name cmd' 来添加,增加的别名保存在$HOME/.gitconfig文件中。
增加的别名使用方法和git自带命令相同 - 'git alias_name parameter'。而且也可以使用tab实现命令和参数的自动补全。
2.1 查看最近三次的提交记录
-
Bash 代码
1 | git config --global alias .last 'log -3 HEAD' |
2.2 同步上游最新代码
-
Bash 代码
1 | git config --global alias . sync '!git fetch upstream master && git rebase upstream/master' |
2.3 以master为基准,创建新分支,并自动切换到新分支
-
Bash 代码
1 | git config --global alias .nb '!git checkout -b $1 master && :' |
2.4 删除本地分支,删除对应远端分支以及fork库上的对应分支
-
Bash 代码
1 | git config --global alias .db '!git checkout -q master && git branch -d $1 && git push origin :$1 && :' |
对于带参数的别名,有一个技巧,在最后需要加上' && :'。这是解析参数的机制导致,原理就不详述了。
3. linux的bash下显示当前分支
Windows下的git bash有一个很友好的特性,进入git仓库目录后,会显示当前分支。linux下默认没有这个特性,不过我们可以自己加上。
原理是增加一个查询当前分支的函数,然后定制bash的PS1,即命令提示符。在~/.bashrc中增加
-
Bash 代码
1 | function parse_git_branch_and_add_brackets { |
2 | git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\[\1\]/' |
3 | } |
4 | PS1= "\h@\u:\w\[\033[0;32m\]\$(parse_git_branch_and_add_brackets)\[\033[0m\]\$ " |
效果如下:
更多推荐
所有评论(0)