Git基本操作命令

目录

一、简介

二、基本命令使用

(1) git add ---将该文件添加到暂存区

(2) git status --- 命令用于查看在上次提交之后是否有对文件进行再次修改

(3) git diff -- 比较文件在暂存区和工作区的差异

(4) git commit  --- 将暂存区内容添加到本地仓库中

(5) git reset --指定退回某一次提交的版本

(6) git rm -- 将文件从暂存区和工作区中删除

(7) git mv --移动或重命名一个文件、目录或软连接

(8) 查看提交日志

     git log --查看历史提交记录

     git blame  - 以列表形式查看指定文件的历史修改记录

一、简介

Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比。

Git 常用的是以下 6 个命令:git clonegit pushgit add 、git commitgit checkoutgit pull。

Git基本操作命令_第1张图片

说明:

  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:版本库或本地仓库
  • remote repository:远程仓库

提交与修改

下表列出了有关创建与提交你的项目的快照的命令:

命令 说明
git add 添加文件到暂存区
git status 查看仓库当前的状态,显示有变更的文件。
git diff 比较文件的不同,即暂存区和工作区的差异。
git commit 提交暂存区到本地仓库。
git reset 回退版本。
git rm 将文件从暂存区和工作区中删除。
git mv 移动或重命名工作区文件。

二、基本命令使用

(1) git add ---将该文件添加到暂存区

命令格式:

1、添加一个或多个文件到暂存区
git add [file1] [file2] ...

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

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

使用案例:


$ touch testAdd.txt                # 创建文件
$ touch hello.php            # 创建文件
$ git status -s       # 查看项目的当前状态
?? testAdd.txt 
?? hello.php
$ git add testAdd.txt  hello.php    # 执行 git add 命令来添加文件
$ git status -s       
A  testAdd.txt
A  hello.php


$ vim testAdd.txt  # 修改文件内容
$ git status -s   
AM testAdd.txt            # AM 状态的意思是这个文件在将它添加到缓存之后又有改动
A  hello.php
$ git add testAdd.txt     # 执行 git add 命令来添加文件
$ git status -s
A  testAdd.txt
A  hello.php



(2) git status --- 命令用于查看在上次提交之后是否有对文件进行再次修改

使用 -s 参数来获得简短的输出结果。

(3) git diff -- 比较文件在暂存区和工作区的差异

giit diff 命令显示已写入暂存区和已经被修改但尚未写入暂存区文件的区别。

命令格式

尚未缓存的改动:git diff
查看已缓存的改动: git diff --cached
查看已缓存的与未缓存的所有改动:git diff HEAD
显示摘要而非整个 diff:git diff --stat


# 1、显示暂存区和工作区的差异
$ git diff [file]    

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


# 3、显示两次提交之间的差异
$ git diff [first-branch]...[second-branch]


使用案例:

修改testadd.txt中的内容,在第二行添加“第二次修改”。

git diff 查看暂存区与工作去查表

git add 将修改每日添加暂存区

git diff --cached 查看已经缓存的改动 

 

(4) git commit  --- 将暂存区内容添加到本地仓库中

命令格式:

1、提交暂存区到本地仓库([message] 可以是一些备注信息)
$ git commit -m [message]

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

3、-a 参数设置修改文件后不需要执行 git add 命令,直接来提交
$ git commit -am

(5) git reset --指定退回某一次提交的版本

命令格式:

命令格式:
git reset [--soft | --mixed | --hard] [HEAD]


1、--mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
    git reset HEAD

示例:
$ git reset HEAD^            # 回退所有内容到上一个版本  
$ git reset HEAD^ hello.php  # 回退 hello.php 文件的版本到上一个版本  
$ git  reset  052e           # 回退到指定版本

2、--soft 参数用于回退到某个版本
示例:
$ git reset --soft HEAD~3   # 回退上上上一个版本 

3、--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
示例:
$ git reset --hard HEAD~3  # 回退上上上一个版本  
$ git reset –hard bae128  # 回退到某个版本回退点之前的所有信息。 
$ git reset --hard origin/master    # 将本地的状态回退到和远程的一样 



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

HEAD 说明:


    HEAD 表示当前版本
    HEAD^ 上一个版本
    HEAD^^ 上上一个版本
    HEAD^^^ 上上上一个版本
    以此类推...

可以使用 ~数字表示
    HEAD~0 表示当前版本
    HEAD~1 上一个版本
    HEAD^2 上上一个版本
    HEAD^3 上上上一个版本
    以此类推...

(6) git rm -- 将文件从暂存区和工作区中删除

命令格式:

1、将文件从暂存区和工作区中删除
git rm 

2、-f: 强制删除选项(如果删除之前修改过并且已经放到暂存区域的话需要用-f)
$ git rm -f runoob.txt   # 强行从暂存区和工作区中删除修改后的 runoob.txt 文件

3、 --cached: 想把文件从暂存区域移除,但仍然希望保留在当前工作目录中,即仅是从跟踪清单中删除
git rm --cached 

$ git rm --cached runoob.txt  # 从暂存区中删除 runoob.txt 文件

4、–r 递归删除
$ git rm –r *     # 进入某个目录中,执行此语句,会删除该目录下的所有文件和子目录。

(7) git mv --移动或重命名一个文件、目录或软连接

1、git mv [file] [newfile]  # 将file 移动成newfile

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

(8) 查看提交日志

     git log --查看历史提交记录

     git blame  - 以列表形式查看指定文件的历史修改记录

1、git log - 查看历史提交记录。
2、git blame  - 以列表形式查看指定文件的历史修改记录。
 
3、--oneline 选项来查看历史记录的简洁的版本
$ git log --oneline

4、--graph 选项,查看历史中什么时候出现了分支、合并

5、--reverse 参数来逆向显示所有日志

6、--author=A 查找指定用户A的提交日志
$ git log --author=Linus --oneline -5

7、查看指定文件的修改记录可以使用 git blame 命令
git blame 

$ git blame README 

你可能感兴趣的:(git,git,github)