Git命令

一、 创建仓库相关命令

1. git init:在当前目录中创建新的 Git 仓库

2. git clone:拷贝一份远程仓库,也就是下载一个项目

默认情况下,Git 会按照你提供的 URL 所指向的项目的名称创建你的本地项目目录。 通常就是该 URL 最后一个 / 之后的项目名称。如果你想要一个不一样的名字, 你可以在该命令后加上你想要的名称。

  • (1) git clone [url]:拷贝一个 Git 仓库到本地,url为要拷贝的项目地址

二、提交与修改相关命令

1. git add:添加文件到暂存区

  • (1) git add [file1] [file2] ...:添加指定文件到暂存区

  • (2) git add [dir]:添加指定目录到暂存区,包括子目录

  • (3) git add .:添加当前目录下的所有文件到暂存区

2. git status:查看仓库当前的状态

用于查看在你上次提交之后是否有对文件进行再次修改

  • (1) git status -s:获得简短的输出结果
    文件名前的AM状态的意思是:这个文件在我们将它添加到缓存之后又有改动。

3. git diff:比较文件的不同,即暂存区和工作区的差异

  • (1) git diff [file]:显示暂存区和工作区的差异

  • (2) git diff --cached [file]git diff --staged [file]:显示暂存区和上一次提交(commit)的差异

  • (3) git diff [first-branch]...[second-branch]:显示两次提交之间的差异

4. git commit:将暂存区内容添加到本地仓库中

  • (1) git commit -m [message]:添加到本地仓库中时带上message

  • (2) git commit [file1] [file2] ... -m [message]:提交暂存区的指定文件到仓库区

  • (3) git commit -a:修改文件后不需要执行 git add 命令,直接来提交

5. git reset:回退版本,指定退回某一次提交的版本

  • (1) git reset [--mixed] [HEAD]:--mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变
$ git reset HEAD^ # 回退所有内容到上一个版本  
$ git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本  
$ git reset 052e # 回退到指定版本
  • (2) git reset --soft HEAD:回退到某个版本
$ git reset --soft HEAD~3 # 回退上上上一个版本
  • (3) git reset --hard HEAD:撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
$ git reset –hard HEAD~3  # 回退上上上一个版本  
$ git reset –hard bae128  # 回退到某个版本回退点之前的所有信息。 
$ git reset --hard origin/master    # 将本地的状态回退到和远程的一样 

⚠️ 注意:谨慎使用 –hard 参数,它会删除回退点之前的所有信息。

  • (4) HEAD 说明:
HEAD 表示当前版本

HEAD^ 上一个版本

HEAD^^ 上上一个版本

HEAD^^^ 上上上一个版本

以此类推...

可以使用 ~数字表示
HEAD~0 表示当前版本

HEAD~1 上一个版本

HEAD^2 上上一个版本

HEAD^3 上上上一个版本

以此类推...

6. git rm:删除工作区文件

  • (1) git rm <file>:将文件从暂存区和工作区中删除

  • (2) git rm -f <file>如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

  • (3) git rm --cached <file> :把文件从暂存区域移除,但仍然希望保留在当前工作目录中

7. git mv:移动或重命名工作区文件

  • (1) git mv [file] [newfile]:移动或重命名一个文件、目录或软连接

  • (2) git mv -f [file] [newfile]:如果新的文件名已经存在,但还是要重命名它,可以使用 -f 参数

三、提交日志相关命令

1. git log:查看历史提交记录

  • (1) git log:查看历史提交记录

  • (2) git log --oneline:历史记录的简洁的版本

  • (3) git log --graph:查看历史中什么时候出现了分支、合并

  • (4) git log --reverse:逆向显示所有日志

  • (5) git log --author=[username]:查找指定用户的提交日志

  • (6) --since--before--until--after参数:查看指定日期范围内的历史提交记录

  • (7) --no-merges选项:隐藏合并提交

2. git blame <file>:以列表形式查看指定文件的历史修改记录

四、远程操作相关命令

1. git remote:远程仓库操作

  • (1) git remote -v:查看远程仓库信息

  • (2) git remote show [remote]:显示某个远程仓库的信息

  • (3) git remote add [shortname] [url]:添加远程版本库,shortname 为别名,以便将来引用

  • (4) git remote rm name : 删除远程仓库

  • (5) git remote rename old_name new_name: 修改仓库名

2. git fetch:从远程获取代码库

  • (1) git fetch <远程仓库的别名>:将远程仓库所有分支的最新版本全部取回到本地

  • (2) git fetch <远程主机名> <分支名>:将远程仓库指定分支的最新版本取回到本地

3. git merge:把指定的分支合并到当前所在的分支下

4. git push:上传远程代码并合并

5. git pull:下载远程代码并合并

git pull 其实就是 git fetchgit merge FETCH_HEAD 的简写。命令格式如下:
git pull <远程主机名> <远程分支名>:<本地分支名>

# 将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并
# 即:取回 origin/master 分支,再与本地的 brantest 分支合并。
$ git pull origin master:brantest

# 如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
$ git pull origin master

五、分支管理相关命令

1. 创建分支

$ git branch <branchName>

2. 切换分支

$ git checkout <branchName>

3. 合并分支

# 将任何分支合并到当前分支
$ git merge

4. 列出分支

$ git branch

5. 创建新分支,并立即切换到该分支

$ git checkout -b <branchName>

6. 删除分支

$ git branch -d <branchName>

参考资料

推荐阅读更多精彩内容

  • 简介 Git 作为分布式版本控制系统,基于去中心化的设计思想,在每个分布式节点上都保存有完整的版本,降低了对中心仓...
    zhipingChen阅读 293评论 0 3
  • git命令大全 一、新建代码库 -在当前目录新建一个Git代码库$gitinit -新建一个目录,将其初始化为Gi...
    可可奈奈learn阅读 139评论 0 0
  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 7,088评论 1 26
  • 一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。 下面是我整理的常用...
    码大哈阅读 157评论 0 1
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 7,403评论 0 6