Git常用指令总结

前言
自己在学习 Git 过程中摘录下来的一些常用指令,方便自己今后需要使用时进行查询,学习的途径主要是两个,在下面给出链接。
集中式 VS 分布式
集中式
必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟。
必须存在中央服务器,干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。
安全性不高,因为存在中央服务器,如果服务器出故障,将会导致整个版本控制系统崩溃。
分布式
分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。
分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。
常用 Git 指令
创建 Git 版本库
1
$ git init
将文件添加到 Git 版本库
1
$ git add
提交更改内容
1
$ git commit -m "提交信息"
查看版本库状态
1
git status
查看文件修改的内容
1
$ git diff 文件名
查看 Git 提交日志
1
$ git log --oneline --graph
版本回退
1
2
3
4# --hard 选项会导致代码也会被修改到版本ID时刻
# HEAD^ 表示上一个版本,HEAD^^ 表示上上一个版本
$ git reset --hard 版本ID号
$ git reset --hard HEAD^查看历史命令,用来确定期望的回退版本号
1
$ git reflog
丢弃工作区的修改,即让文件回到最近一次 git commit 或 git add 时的状态,这个指令有时也可以用来作为恢复误删的文件
1
2
3$ git checkout -- 文件名
# git reset 命令既可以回退版本,也可以把暂存区的修改回退到工作区。
$ git reset HEAD 文件名删除版本库中的文件
1
$ git rm 文件名
添加远程仓库
1
$ git remote add 别名 远程仓库地址
查看远程仓库信息
1
$ git remote -v
推送指定分支到远程仓库
1
$ git push 远程仓库(别名) 分支名
指定本地分支与远程分支的链接,未指定将会导致 git pull 失败
1
2
3$ git branch --set-upstream-to 本地分支名 远程分支
# 例如
$ git branch --set-upstream-to dev origin/dev拉取远程仓库指定分支到本地
1
$ git pull
拷贝远程仓库全部分支到本地
1
$ git clone 远程仓库地址
创建并切换分支
1
2
3
4
5$ git checkout -b 分支名字
# 相当于以下两条命令
$ git branch dev
$ git checkout dev切换分支,需要分支存在
1
$ git branch dev
查看当前分支
1
$ git branch
合并目标分支到当前分支
1
$ git merge 目标分支
删除指定分支
1
$ git branch -d 分支名
临时存储当前工作现场
1
$ git stash
查看存储的工作现场
1
$ git stash list
恢复工作现场
1
2
3
4$ git stash pop
# 上述指令等价于
$ git stash apply
$ git stash drop变基
1
$ git rebase
打一个新标签
1
$ git tag v1.0
查看所有标签
1
$ git tag
为指定提交打标签
1
$ git tag v0.9 提交ID号 -m "消息"
查看标签说明消息
1
$ git show <tagname>
删除标签
1
$ ggit tag -d v0.1