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