最近更新:2018-8-31 11:06

这篇文章主要记录的是关于 Git 的一些常用的命令,当一些命令太久没有使用忘记时可以在这里重新学习! 下载 Git 请点击这里


查看版本号

1
$ git -version

查看用于名和邮箱

1
2
$ git config --global user.name
$ git config --global user.email

设置用户名和邮箱

1
2
$ git config --global user.name "Your name"
$ git config --global user.email "your email address"

查看用户是否已经有 ssh 密钥

进入用户名录

1
$ cd ~

查看是否有 .ssh 目录

1
$ ls -a

如果有.ssh 目录,并且确定不是自己生成的,则把该目录删掉

1
$ rm -rf .ssh

生成用户 ssh 密钥

创建 .ssh 目录

1
$ mkdir .ssh

创建 .ssh key ,输入以下命令,并一直按 Enter 键,直到完成创建

1
$ ssh-keygen -t rsa -C "Your email address"

查看生成的 .ssh 目录的内容

1
2
$ cd .ssh
$ ls

使用生成的 ssh key

.ssh 目录下,使用如下命令打开 id_rsa.pub 文件

1
$ cat id_rsa.pub

复制 id_rsa.pub 文件中的内容,将该公钥添加到代码托管平台中就可以使用 Git了。
常用的代码托管平台有国外的 GitHub 和国内的 Gitee

  • GitHub: 是使用最为广泛的的远程代码托管平台之一,是国外的,但是一般情况下你的代码在上面都是公开的,谁都可以查看和下载,除非你向该平台定期缴纳费用
  • Gitee: 又叫 码云 是国内比较有名的远程代码托管平台之一,在该平台上你可以免费地设置你的代码是否公开或私有,如果你希望你的某些代码不被别人看到可以考虑使用该平台

创建本地代码仓库

  1. 打开终端,使用如下命令进入需要创建项目的目录
1
$ cd [target path]
  1. 创建项目跟目录并进入建好的项目跟目录
1
2
$ mkdir [Project Name]
$ cd [Project Name]
  1. 查看项目的绝对路径
1
$ pwd
  1. 创建仓库
1
$ git init

从远程仓库中直接拉取(克隆)项目到本地

直接克隆

1
2
3
$ git clone git@github.com:Jinphy/GitHubProject.git (GitHub平台)

$ git clone git@gitee.com:Jinphy/GiteeProject.git(Gitee平台)

克隆到指定目录

1
$ git clone git@github.com:Jinphy/gitHubProject.git [folder]

注: 以上只列举了 GitHubGitee 两个平台的远程仓库,其他远程仓库的用法于此类似

拉取远程分支到本地
将远程分支 dev 拉到本地,只拉取不检出,即拉取前在哪个分支,拉取后还在哪个分支

1
$ git fetch origin dev

注: fetch 命令与 pull 不同 ,后者是把指定的远程分支拉到本地当前HEAD所在的分支上而不会在本地新建一个新的同名分支

拉取远程分支并检出到该分支
将远程分支 dev 拉到本地并把HEAD切换到该分支

1
$ git checkout -b dev(本地分支) origin/dev(远程分支)

指令:remote

  • 前提

    1. 本地:有一个项目叫 GiteeProject
    2. 远程:在 Gitee 平台上有个个项目叫
      GiteeProject(http://gitee.com/JinphyGiteeProject)
  • 关联本地仓库到远程

1
$ git remote add gitee git@gitee.com:Jinphy/GiteeProject.git

注:

  • 上面中的 gitee 可以自己命名,它时远程仓库在本地中的一个名称,叫什么不会对远程仓库有任何影响
  • 如果远程仓库时 GitHub ,则上面的命令中的 gitee.com 可以改成 github.com
  • 查看本地项目关联远程仓库的情况,将会显示所有关联的远程仓库及其读写权限
1
2
3
$ git remote -v

$ git remote -verbose
  • 解除与某个远程仓库的关联
1
2
3
$ git remote rm gitee

$ git remote remove gitee

注: 上面的 gitee 是远程仓库在本地关联的名字

  • 更改远程分支在本地中的名字
1
$ git remote rename [old_name] [new_name]

注: 例如从远程仓库中 clone 下来的项目在本地的默认分支的名字是 origin ,现在如果这个远程仓库是GitHub上面的,则可以改成 github;如果是Gitee上面的,则可以改成 gitee

指令:checkout

检出本地已有分支

1
$ git checkout [branch_name]

从当前分支中检出新的分支,并把 HEAD 指向该新分支

1
$ git checkout -b [new_branch_name]

从当前分支检出到新分支,并进行3路合并

1
$ git checkout -m [branch_name]

注: 所谓3路合并就是将当前分支(修改前的)、当前分支(修改后但是还未提交的)以及新检出的分支进行合并,并将合并结果更新到新检出的分支中。值得注意的是,新检出的分支的提交状态与旧分支的提交状态一致(即如果旧分支是未提交的则新检出的分支也是未提交的),最后旧分支的状态将回到最后一次提交后(修改前)的状态

从当前分支检出新的分支,并放弃所有修改但未提交的内容

1
$ git checkout -f [branch_name]

注: 执行该命令后,相当于放弃在之前分支修改但未提交的所有内容,旧分支的状态将回到最后一次提交后修改前的状态。

指令:branch

查看本地分支

1
$ git branchr

查看远程分支

1
2
3
$ git branch -r

$ git branch --remoter

查看所有分支(本地、远程

1
2
3
$ git branch -a

$ git branch --all

查看分支,并带有最后一次提交的信息

1
2
3
$ git branch -v

$ git branch -verbose

删除已经完全合并后的分支

1
$ git branch -d

注: 执行该命令只能删除完全合并后的分支,即只有在当前分支的所有修改提交都被合并到其他分支上之后才能删除,否则删除不成功,并提示你该分支的修改提交还没有被合并,所以该操作是安全的

强制删除指定分支

1
$ git branch -D

注: 该指令执行后指定的分支将会被删除,即使该分支有修改提交未被合并到其他分支上,所以该指令要慎用,一般情况请使用上面一条指令

指令:add**

将某个新增或修改后的文件添加到仓库索引中

1
$ git add [file_name]

将所有新增或修改后的文件添加到索引中

1
$ git add .

注: . 是一个通配符,匹配所有文件,也可以根据需求只匹配一部分的文件。例如,将 . 换成 *.s 时,将匹配所有文件名以 .s 结尾的文件