git简介
git官网有全套教程和说明,有兴趣的自己研究。
如果你不适应命令行,可以使用GUI工具,如SourceTree。
官方文档
中文官方文档。
官方文档非常详细,需要仔细阅读。
常用命令
切换分支
1
git checkout branchName
合并分支(将branchName合并到当前的分支)
1
git merge --no-ff branchName
新建分支并切换到新建的分支
1
git checkout -b branchName
删除分支
1
2git branch -d branchName //删除本地的分支
git push <shortname> :branchName //删除远程分支追加提交
1
2
3git commit -m 'initial commit'
git add forgotten_file
git commit --amend取消暂存
1
git reset HEAD fileName
撤销对文件的修改(
**不可逆**
)1
git checkout -- fileName
查看远程仓库的url
1
git remote -v
添加新的远程仓库
1
git remote add <shortname> <url>
拉取远程仓库的内容
1
2git fetch <shortname> [branchName] //不会合并,只拉取
git pull <shortname> [branchName] //拉取并且合并推送到远程仓库
1
git push [shortname] [branch-name]
移除某个远程仓库
1
git remote rm <shortname>
重命名远程仓库
git remote rename
1
git remote rename oldShortName newShortName
创建标签
1
2
3
4git tag -a 1.2.0 -m 'my version 1.2.0'
//在之前的某次提交commitId打标签
git tag -a 1.1.9 9fceb02推送标签到远程仓库
1
2git push <shortname> --tags //推送所有本地标签
git push <shortname> 1.2.0 //推送特定的标签检出到特定的标签
git checkout -b [branchname] [tagname]
1
git checkout -b branchName 1.2.0
删除标签
1
2git tag -d tagName //删除本地的tag
git push <shortname> --delete tag tagName //删除远程的tag设置git别名
1
2
3
4
5git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.unstage 'reset HEAD --'版本回退
1
git reset --hard HEAD ~N //N为数字,回退N个版本
撤销某次提交
1
git revert commitId
文件权限不纳入版本管理
1
git config core.filemode false
子模块
1
2git submodule add 仓库url 本地路径 //添加子模块
git submodule update —init —recursive //下载带有子模块的repo后暂存。当某个任务完成了一半,但突然插进来一个其它的紧急任务,这个时候你又不能将未完成的工作commit,暂存stash就非常有用了。
1
2
3
4
5
6
7git stash save "some comments for this stash" //暂存并添加注释,方便后续取出
git stash list //查看当前所有的暂存
git stash apply stash@{0} //取出最后一次的暂存(具体想取出哪次暂存,通过git stash list查看)
git stash drop stash@{0} //将最后一次的暂存从暂存列表清除
git stash clear //清除所有暂存
git stash pop //取出最后一次暂存,并将其从暂存列表清除
git stash branch newBranch stash@{0} //取出最后一次暂存并切换到新的分支newBranch,同时将其从暂存列表清除
附录
查看git的总提交次数(可以作为版本号之类的)1
git rev-list head | sort | wc -l
查看git最后一次提交的hash值1
git rev-list head | head -1