git全局设置及生成密钥
1 | git config --global user.name 'fhy' |
Your identification has been saved in /home/fhy/.ssh/id_rsa.
Your public key has been saved in /home/fhy/.ssh/id_rsa.pub.
1 cat /home/fhy/.ssh/id_rsa.pub
创建git仓库
创建一个初始化本地仓库
1 | git init |
ls -al 可看到多了个.git 文件
查看git状态
1 | git status # git status -s 简略 |
忽略特殊文件vim .gitignore
进入gitignore 文件下编辑,放入想要忽略的文件名即可git add
把文件添加到仓库缓存区,git commit
把文件提交到仓库
1 | git add . # add所有 git add file_name # add单个 |
查看被修改的内容
1 | git diff |
查看历史记录
1 | git log |
版本回退(上一个版本HEAD^,上上个版本HEAD^^,往上100个HEAD~100)
1 | git reset --hard HEAD^ |
如果再想回去回退前的版本,输入对应的commit id(前几位)
1 | git reset --hard 3628452 |
删除一个文件rm test.txt,如果确认从版本库中删除,那就git rm
并且git commit
;如果删错,可以从版本库恢复git checkout -- test.txt
撤销未提交的修改
1 | git checkout . |
远程仓库
把本地仓库与远程仓库关联
1 | git remote add origin https://git.oschina.net/www.fhyblog.com/article.git |
推送(第一次需加-u)
1 | git push -u origin master |
查看远程库的信息
1 | git remote |
创建远程origin的dev分支到本地
1 | git checkout -b dev origin/dev |
修改并push到远程
1 | git commit -m "add .." |
另一个人从远程git pull,需设置本地dev分支与远程origin/dev分支的链接
1 | git branch -set-upstream dev origin/dev |
创建与合并分支
创建dev分支并切换到dev分支
1 | git checkout -b dev |
查看当前分支(当前分支前面会标一个*号)
1 | git branch |
切换回master后,将指定分支dev合并到master主分支上
1 | git checkout master |
删除dev分支
1 | git branch -d dev |
看分支合并图
1 | git log --graph --pretty=oneline --abbrev-commit |
bug分支
如果工作进行到一般还没法提交,出现Bug需要马上修复,stash
将当前工作储藏起来,等以后恢复现场后继续工作。
1 | git stash |
创建临时分支开始修复Bug,修复完成后切换到master分支,完成合并删除分支
1 | git merge --no-ff -m "<description>" <branch_name> |
还原之前的工作现场
1 | git stash list # 查看 |
也可以多次stash,先查看之后恢复指定的stash
git stash apply stash@{0}
标签管理
切换到需要打标签的分支上
1 | git tag <name> # 创建v1.0的标签 |
查看历史提交的commit id,对应打标签
1 | git log --pretty=oneline --abbrev-commit |
查看标签信息
1 | git show <tagname> |
创建带有说明的标签
1 | git tag -a <tagname> -m '<addtext>' <commit_id> |
用PGP签名标签
1 | git tag -s <tagname> -m '<addtext>' <commit_id> |
#####操作标签
删除标签
1 | git tag -d <tagname> |
推送v1.0标签到远程
1 | git push origin v1.0 |
推送全部尚未推送到远程的标签
1 | git push origin --tags |
删除远程标签
1 | git tag -d <tagname> # 本地删除 |
配置别名
例:
将status设置成st
1 | git config --global alias.st status |
co表示checkout,ci表示commit,br表示branch
1 | git config --global alias.co checkout |
–global参数是全局参数
配置一个git last,显示最后一次提交信息
1 | git config --global alias.last 'log -1' # git last |
配置log
1 | git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" |
配置文件.git/config
例:
1 | co = checkout |
搭建git仓库(略)