赞
踩
-
Bash 代码
1 | git clone repo_address |
master是当前分支:
-
Bash 代码
1 | git checkout -b feature_a |
master不是当前分支:
-
Bash 代码
1 | git checkout -b feature_a master |
使用checkout -b,在创建分支后,会自动切换到对应分支
查看当前修改状态:
-
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 |
-
Bash 代码
1 | git fetch upstream master & git rebase upstream/master |
如果产生冲突,解决冲突并继续rebase。(这里没有展开讲,细节比较多)
-
Bash 代码
1 | git push origin feature_a |
如果fork上没有feature_a分支,这步操作会在fork上创建feature_a分支
网站上操作
-
Bash 代码
1 | git checkout master |
2 | git fetch upstream master & git rebase upstream/master |
3 | git push origin master |
删除fork上的feature_a,以及本地对应的remote/feature_a分支
-
Bash 代码
1 | git push origin :feature_a |
删除本地的feature_a分支
-
Bash 代码
1 | git branch -d feature_a |
在1~6中间,也可以随时打断。重新进行1~6,开发其它特性如果有未提交代码,简单处理可以先提交,再拉新分支开发
git有些命令行死长死长的,比如"git fetch upstream master & git rebase upstream/master"。所以定义一些自己习惯的别名还是很有必要的。当然有些别名缩写为了尽量减少输入量,可能导致命令含义不是特别清晰,这个东东仁者见仁,仅供参考。
git自带的别名系统主要通过 'git config --global alias.name cmd' 来添加,增加的别名保存在$HOME/.gitconfig文件中。
增加的别名使用方法和git自带命令相同 - 'git alias_name parameter'。而且也可以使用tab实现命令和参数的自动补全。
-
Bash 代码
1 | git config --global alias .last 'log -3 HEAD' |
-
Bash 代码
1 | git config --global alias . sync '!git fetch upstream master && git rebase upstream/master' |
-
Bash 代码
1 | git config --global alias .nb '!git checkout -b $1 master && :' |
-
Bash 代码
1 | git config --global alias .db '!git checkout -q master && git branch -d $1 && git push origin :$1 && :' |
对于带参数的别名,有一个技巧,在最后需要加上' && :'。这是解析参数的机制导致,原理就不详述了。
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\]\$ " |
效果如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。