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
2git add . # add所有 git add file_name # add单个
git commit -m 'first commit'
查看被修改的内容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
2git remote
git remote -v # 更详细
创建远程origin的dev分支到本地1
git checkout -b dev origin/dev
修改并push到远程1
2git commit -m "add .."
git push origin dev
另一个人从远程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
2git checkout master
git merge dev
删除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
2
3git stash list # 查看
git stash apply # 恢复但是stash内容并不删除,需要git stash drop来删除
git stash pop # 恢复的同时把stash内容也删了
也可以多次stash,先查看之后恢复指定的stash
git stash apply stash@{0}
标签管理
切换到需要打标签的分支上1
git tag <name> # 创建v1.0的标签
查看历史提交的commit id,对应打标签1
2git log --pretty=oneline --abbrev-commit
git tag v0.9 6224937
查看标签信息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
2git tag -d <tagname> # 本地删除
git push origin :refs/tags/<tagname>
配置别名
例:
将status设置成st1
git config --global alias.st status
co表示checkout,ci表示commit,br表示branch1
2
3git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
–global参数是全局参数
配置一个git last,显示最后一次提交信息1
git config --global alias.last 'log -1' # git last
配置log1
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
2
3
4
5
6
7 co = checkout
ci = commit
br = branch
st = status
[user]
name = Your Name
email = your@email.com
搭建git仓库(略)