Git常用命令快速一览

来源:互联网 发布:希区柯克剧场 知乎 编辑:程序博客网 时间:2024/05/01 00:10

安装Git

查看系统是否已经装了git

$ gitThe program 'git' is currently not installed. You can install it by typing:sudo apt-get install git

如果没有装git用下面的命令安装git

sudo apt-get install git

安装完成后用下面命令进行全局设置,设置用户名和邮箱地址

$ git config --global user.name "Your Name"$ git config --global user.email "email@example.com"

这里写图片描述

在主目录下查看.gitconfig

这里写图片描述

创建版本库

已经设置好用户名和邮箱地址

创建一个空文件夹用作本地仓库

初始化本地git仓库

$ git initInitialized empty Git repository in /Users/michael/learngit/.git/

这里写图片描述

创建一个测试文件,放在software目录下

并提交到仓库的暂存区

git add test.txt

这里写图片描述

然后将暂存区中添加的文件提交到版本库里面

$ git commit -m "wrote a test.txt file"[master (root-commit) cb926e7] wrote a readme file 1 file changed, 2 insertions(+) create mode 100644 readme.txt

这里写图片描述

版本回退

下面这条命令是显示当前仓库的状态,前面的示例中已经显示出来这条命令的作用

$ git status

git diff用来查看我们修改过的文件的状态,也就是具体在哪些地方做了修改

$ git diff

这里写图片描述

显示历史记录的命令

$ git log$ git log --pretty=oneline

这里写图片描述

单行显示信息

这里写图片描述

在Git中用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,往上100个版本是

HEAD~100

使用git reset可以回退到上一个版本

$ git reset --hard HEAD^$ git reset --hard commit id

这里写图片描述

git reflog记录了你的每一次命令,可以用此查看 commit id

$ git reflog

这里写图片描述

在这块介绍一下工作区和暂存区,这样会对git工作方式有更多了解

工作区和暂存区

就是你在电脑里能看到的目录,比如我的software文件家就是一个工作区

这里写图片描述

工作区里有一个隐藏目录.git,这不算工作区,而是Git的版本库

Git的版本库里存了很多东西,其中最重要的就是成为stage(或者叫index)的暂存区,还有Git为我们自动创

建的第一个分之master,以及指向master的一个指针叫HEAD

这里写图片描述

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往

master分支上提交更改。

你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

撤销修改

如果在工作区对文件进行了修改,但是又想撤销修改怎么办呢,用git checkout – file可以丢弃工作区的修改

$ git checkout -- test.txt

这里写图片描述

这条命令的意思就是把test.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是text.txt自修改后还没有被放到暂存区,现在撤销修改就回到和版本库一模一样的状态;

一种是test.txt已经添加到暂存区后,又做了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commit或git add 时

如果已经把修改的文件放入暂存区了,但是又想撤销修改,我们可以用git reset HEAD file把暂存区的秀嘎斯

撤销掉,重新放回工作区

$ git reset HEAD test.txt

这里写图片描述

这里写图片描述

git rest命令既可以回退版本,也可以把暂存的修改回退的工作区

删除文件

在工作区删除文件后,Git会知道你删除了文件,但是这样工作区和版本库就不一致了,因为工作区的文件被

删除了,版本库还有,git status命令可以告诉你哪些文件被删除了,如果要从版本库中删除该文件,就用下

面git rm命令删掉,并且git commit更新状态,文件就从版本库中删除了

$git rm

这里写图片描述

远程仓库

在GitHub上注册账号,由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以使用前要先设
置:

第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和

id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell,创建SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是

SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉第2步:登陆

GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容

我们新建了GitHub仓库后,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之相关联,然

后把本地仓库的内容推送到GitHub仓库

$ git remote add origin git@github.com:DiorsVIP/software.git

把上面的DiorsVIP替换成自己的GitHub账户名

添加后远程库的名字就是 orgin ,这是Git默认的叫法,也可以改成别的

关联了远程库以后我们就可以把本地库的所有内容推送到远程库上:

删除远程库连接

git remote remove origin
$ git push -u origin master

这里写图片描述

这里可以看到,出错了,刚开始使用的时候,我也觉得很奇怪,为什么会出错,查了一下,这里有些细节需

要注意。

第一个是:无法推送一些引用到自己的GitHub上,这有一个原因是因为本地的仓库是空的,将空的本地仓库

推送上去就会出这个错误,我在下面用 ls 看了一下,确认现在这个仓库是空的,只要让仓库不空的时候再

推送是可以成功的。

还有一种简单暴力的方法就是

$ git push -u origin +master

这里写图片描述

在master分支前面加上一个+表示强制推送更新

从远程库克隆

我们在GitHub上创建一个远程库,现在想克隆一个本地库:

$ git clone git@github.com:DiorsVIP/test.git

这里写图片描述

这块有点问题,这个命令在主目录下执行可以直接克隆一个仓库下来,直接是一个目录,不用自己去创建目录

这里写图片描述

创建与合并分支

下面的命令是创建一个分支

$ git checkout -b dev

git checkout 命令加上-b参数表示创建并切换,相当于以下两条命令

$ git branch dev$ git checkout dev

然后用git branch命令查看当前分支

这里写图片描述

git merge 命令用于合并指定分支到当前分支

$ git merge dev

这里写图片描述

合并完成后就可以删除dev分支了

$ git branch -d dev

这里写图片描述

git long –graph可以查看分支合并图

git log --graph

这里写图片描述

要查看远程库的信息,可以用git remote

$ git remote

这里写图片描述

或者用下面的命令获取更详细的信息

$ git remote -v

这里写图片描述

创建远程origin的dev分支到本地

$ git checkout -b dev origin/dev

这里写图片描述
当多人协作时候,同时对dev分支进行修该,推送的时候可能会失败,这时,应先将最新的提交用git pull 从

origin/dev抓下来,然后在本地合并,解决冲突,再推送

$ git pull

如果git pull 也失败了,有可能是因为没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置

dev和origin/dev的链接

$ git branch --set-upstream dev origin/dev

然后在用git pull去拉下来

这里写图片描述

创建标签

git tag < name > 可以打一个一个新的标签

git tag <name>

用git tag可以查看所有标签

这里写图片描述

默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周

一打的标签没有打,怎么办?

方法是找到历史提交的commit id,然后打上就可以了

$ git log --pretty=oneline --abbrev-commit

这里写图片描述

还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:

$ git tag -a v0.1 -m "version 0.1 released" 3628164

还可以通过-s用私钥签名一个标签:

$ git tag -s v0.2 -m "signed version 0.2 released" fec145a

下面的命令可以查看标签信息

git show <tagname>

这里写图片描述

操作标签

如果标签打错了,也可以删除:

$ git tag -d v0.1

这里写图片描述

如果要推送某个标签到远程,使用命令git push origin  < tagname >

$ git push origin v1.0

这里写图片描述

一次性推送全部尚未推送到远程的本地标签

$ git push origin --tags

如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:

$ git tag -d v1.0

这里写图片描述

然后,从远程删除。删除命令也是push,但是格式如下:

git push origin :refs/tags/v1.0

这里写图片描述

这里写图片描述

配置别名

配置别名,我们可以根据自己的需要,把觉得很长的或者很难记的git 命令配置为自己命名的别名

下面的这条命令,就吧status命名为st,也就是说如果你想查看仓库信息,你可以用git st就可以查看了

是不是很方便呢

$ git config --global alias.st status

之前跟着廖雪峰老师的教程网站上学了一遍git,但是平时不用的话,很容易忘掉,再返回去学一遍感觉有点
费时间,所以想把这些命令整理一遍,总结成一篇博客,如果哪个命令忘了的话,可以快速的看一看,在写这篇博客的时候,自己也都把命令写了一遍,感觉有很深的印象。
在这里把廖雪峰老师的网站再贴出来,如果想仔细学习的话,可以进去看一看,写的很简洁,也通俗易懂

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/

总之,gti 这个工具挺好用的,虽然命令很复杂,但只要多练,多用,就可以越用越熟练,然后用起来就得心应手啦。

0 0
原创粉丝点击