Git
Git 速查手册,不包含详细解释,只方便日常使用Git时快速查询
起步 Getting Started
- 初始化用户名
git config --global user.name "csensix"
初始化邮箱
git config --global user.email "csensix@foxmail.com"
使用了
--global
选项,该系统上所有项目默认使用此配置。如果需要针对单独项目进行配置,只需要执行不带--global
的命令即可。- 查看配置信息
git config --list
Git基础 Git Basics
- 从现有目录初始化Git仓库
git init
- 克隆现有仓库
git clone https://gitee.com/csensix/testgit.git
克隆仓库的格式:git clone [url]
自定义本地仓库目录名:git clone https://gitee.com/csensix/testgit.git mytest
查看提交历史(友好版)
git log --oneline --decorate --graph --all
--oneline
相当于--pretty=oneline --abbrev-commit
的缩写Git分支 Git Branching
新建分支
git branch dev
新建一个开发分支,命名dev
切换分支
git checkout dev
也可以执行命令:
git checkout -b dev
,相当于新建分支并切换到新分支合并分支
git merge dev
假设已经执行了
git checkout master
,切回到了master
分支
防止fast-forward提交,git merge --no-ff -m "merge with no-ff" dev
- 删除分支
git branch -d dev
- 查看本地所有分支
git branch
- 查看远程分支
git branch -r
- 查看本地和远程所有分支
git branch -a
合并时遇到冲突
可用git status
查看哪些文件有冲突,解决冲突后,每个文件执行git add
,最后执行git commit
例如:
git add readme.txt
->git commit -m "conflict fixed"
推送本地仓库到远程分支
git push origin master
或者
git push origin dev:dev
冒号前是本地分支,冒号后是远程分支跟踪远程分支
git checkout -b dev origin/dev
即
git checkout -b [branch] [remotename]/[branch]
快捷方式:git checkout --track origin/dev
本地分支设置不同名字:git checkout -b new_dev origin/dev
设置或修改跟踪的上游分支:git branch -u origin/serverfix
(备注:-u
或--set-upstream-to
)@{upstream}
或@{u}
是引用上游分支的快捷方式- 查看所有本地与远程分支的对应关系(跟踪分支)
git branch -vv
拉取远程并合并分支
git pull origin [remotename]:[branch]
如果远程分支是与当前分支合并,则冒号后面的部分可以省略:
git pull origin [remotename]
git pull
相当于git fetch
和git merge
的快捷方式
拉取远程分支git fetch origin dev
合并远程分支到某分支git merge origin/dev next
合并远程分支到当前分支git merge origin/dev
检出(checkout)前,要留意你的工作目录和暂存区里那些还没有被提交的修改,它可能会和你即将检出的分支产生冲突从而阻止 Git 切换到该分支。 最好的方法是,在你切换分支之前,保持好一个干净的状态。
从远程拉取本地不存在分支git checkout -b 本地分支名 origin/远程分支名
- 删除远程分支
git push origin --delete dev
打标签 Tagging
列出标签
git tag
可以使用特定的模式查找标签,如
git tag -l 'v1.8.5*'
创建标签
标签分类:轻量标签(lightweight)与附注标签(annotated)。一般使用附注标签,可以记录更多信息。附注标签
git tag -a v1.4 -m "my version 1.4"
轻量标签git tag v1.4-lw
,不需要提供-a
或-m
选项
查看标签提交信息git show v1.4
给之前的提交创建标签git tag -a v1.2 9fceb02
,结尾是提交的(部分)校验和共享(远程同步)标签
命令git push origin [tagname]
如:
git push origin v1.4
如果需要一次性同步所有标签,可以执行:git push origin --tags
获取远程标签(本地没有):git fetch origin tag v1.4
删除标签
命令git tag -d [tagname]
如:
git tag -d v1.4-lw
删除远程标签:git push origin :refs/tags/v1.4
保存和恢复工作进度(stash)
注:在未add
之前才能执行stash
!!!!
- 快速暂存,恢复到修改之前的状态
命令git stash
- 暂存,可添加注释
命令git stash save message
- 查看所有暂存列表
命令git stash list
恢复1
命令git stash pop stash@{num}
num
是可选项,不带此项则默认恢复最近的一次进度相当于git stash pop stash@{0}
,通过git stash list
可查看具体值。只能恢复一次恢复2
命令git stash apply stash@{num}
num
是可选项,不带此项则默认恢复最近的一次进度相当于git stash apply stash@{0}
,通过git stash list
可查看具体值。可回复多次删除某一条暂存
命令git stash drop stash@{num}
删除一条保存的工作进度,此命令的
stash@{num}
是可选项,在多个工作进度中可以选择删除,不带此项则默认删除最近的一次进度相当于git stash drop stash@{0}
- 删除所有暂存
命令git stash clear