git命令大全

1. 仓库创建等基础命令

一、 创建远程仓库

在GitHub上创建一个新的远程仓库,获取仓库的URL地址

二、 从本地仓库提交代码到远程仓库

1、初始化本地仓库

1
git init

2、添加文件到本地暂存区中

1
git add .

3、提交暂存区到本地仓库

1
git commit -m "提交说明"

4、连接远程仓库

1
git remote add origin 仓库地址

5、提交之前先pull

1
git pull origin 远程分支名:本地分支名

如果远程分支是与当前分支合并,则冒号后面的部分可以省略

1
git pull origin 分支名

6、提交到远程仓库

1
git push origin 本地分支名:远程分支名

如果本地分支名与远程分支名相同,则可以省略冒号

1
git push origin 分支名

强制推送可以使用 --force 参数

1
git push --force origin 分支名

三、 其他关联命令

1、config配置

显示当前的Git配置

1
git config --list

编辑Git配置文件

1
git config -e [--global]

设置提交代码时的用户信息

1
2
git config --global user.name "用户名"
git config --global user.email "邮箱地址"

2、查看当前分支

1
git branch

3、查看仓库当前的状态,显示变更文件信息

1
git status

4、查看历史提交记录

1
git log

2. 配置和查看信息

一、 配置

1、显示当前的Git配置

1
git config --list

2、编辑Git配置文件

1
git config -e --global

– global 参数表示全局配置,如果不加该参数则会将配置项信息限定在当前仓库。

点击 字母键 i ,进入编辑模式,编辑,按键esc,输入:wq保存并退出

3、设置提交代码时的用户信息

1
2
git config [--global] user.name "[name]"
git config [--global] user.email "[email address]"

二、 查看信息

1、显示有变更的文件

1
git status

2、显示当前分支的版本历史

1
git log

3、显示commit历史,以及每次commit发生变更的文件信息

1
git log --stat

4、根据关键词搜索提交历史

1
git log -S [keyword]

5、 显示某个commit之后的所有变动信息,每个提交信息占一行

1
git log [tag] HEAD --pretty=format:%s

6、根据提交说明搜索显示某个commit之后的所有变动信息

1
git log [tag] HEAD --grep feature

–grep feature 这是用于指定要搜索的关键词

7、显示某个文件的版本历史

1
git log --follow [file]

8、 显示指定文件是什么人在什么时间修改过

1
git blame [filename]

显示文件的每一行,以及每一行最后一次被修改的提交信息,包括提交者、提交时间等

9、显示暂存区和工作区的差异

1
git diff

10、 显示暂存区和上一个commit的差异

1
git diff --cached [filename]

11、显示工作区与当前分支最新commit之间的差异

1
git diff HEAD

12、显示某次提交的详情

1
git show [commitId]

commitId可以通过 git log命令获取

13、显示某次提交某个文件的详情

1
git show commitId

14、显示当前分支的最近几次提交

1
git reflog

恢复误操作、查找丢失的提交、回退操作等方面非常有用

3. 文件操作

一、 文件操作

1、添加指定文件到暂存区

1
git add [file1]或 git add [file1] [file2] ...

2、添加指定目录到暂存区,包括子目录

1
git add [dir]

3、添加当前目录的所有文件到暂存区

1
git add .

二、文件移除

1、删除工作区文件,并且将这次删除放入暂存区

1
git rm [file1] [file2] ...

2、停止追踪指定文件,该文件会保留在工作区

1
git rm --cached [file]

3、文件已经添加到暂存区,强制删除文件

1
git rm -f [file]

4、删除整个目录下的所有子目录和文件

1
git rm -r [dir]

三、 文件重命名

1、重命名文件,并且将这个改名放入暂存区

1
git mv [file-source] [file-destination]

file-source表示原文件名称,file-destination表示文件重命名后的文件名称

2、新文件名已经存在,强制重命名

1
git mv -f [file-source] [file-destination]

四、 文件恢复

1、恢复删除的文件夹

1
git checkout [commit] -- [folder]

[commit]为包含被删除文件夹的提交ID,[folder] 为被删除的文件夹名称。

2、恢复删除的文件

1
git checkout [commit] -- [file]

[commit] 为包含被删除文件的提交ID,[file] 为被删除的文件名称。

3、恢复暂存区的文件

1
git reset HEAD [file]

将 [file] 从暂存区中移除,并恢复到上一次提交的状态

4、恢复误删除并未提交的文件

1
git checkout [file]

将 [file] 恢复到上一次提交的状态

5、恢复本地删除的文件

首先获取提交历史

1
git log -- [file]

其次选择要恢复的提交

1
git checkout [commit] -- [file]

[commit] 是我们选择的那个提交的ID。

6、恢复删除的stash

获取要恢复的提交

1
2
git fsck --no-reflog | awk '$2 == "commit" {print $3}'
git stash apply [commit]

[commit] 是我们选择的那个提交的ID。