GIT中常用命令

Git使用过程中用到的一些命令

和分支有关的命令

  • 创建分支
    git branch newBranchName
  • 查看分支信息
    git branch
    该命令会显示本地所有的分支,并在当前分支前加上 *
    git branch -r
    该命令会显示远程所有的分支;
    git branch -a
    该命令会显示本地和远程所有的分支
  • 切换分支
    git checkout branchName
  • 删除分支
    git branch -d branchName
    注意不能在当前分支上删除当前分支,必须切换到其他分支。
  • 可以将创建分支和切换分支合并到一步
    git checkout -b newBranchName
  • 分支的合并
    git merge branchName / git rebase branchName
    mergerebase 的合并方式不同。

注意: 刚创建的空的git库是无法直接使用 git branch 命令的,需要一个提交来创建第一个分支,即 master 分支。

关于查看的命令

1. 查看分支的提交记录

  • git log [参数]
    注意: 该命令只能查看当前分支上的存在的提交记录。
    参数有:

GIT中常用命令

  • git reflog
    该命令能查看所有分支上的所有提交记录,包括已删除的commit记录和reset的操作。

2. 查看有哪些文件

git ls-files [参数]
参数有:

GIT中常用命令

3. 查看git对象

  • git cat-file [选项] git对象SHAP-1
    选项:
    • -p:显示对象内容;
    • -t:显示对象类型;
    • -s:显示对象大小。
  • git show git对象SHAP-1
    • 对于 commit 对象,它显示日志消息和文本差异;
    • 对于 tag ,它显示标签消息和引用对象;
    • 对于 tree 对象,它显示的名称;
    • 对于简单的 blob 对象,它显示了普通的内容。

4. 关于差异

  • git diff :工作区和暂存区的差异;
  • git diff commitId/HEAD :工作区和某个commit/当前commit的差异;
  • git diff --cached :暂存区和本地仓库的差异;
  • git diff commitId1 commitId2 :两个commit之间的差异;
  • git diff -- file1 file2 :在上面命令基础上加上 -- file1 file2 可以比较具体文件的差异。

5.跳到指定的commitId/指定commitId中的文件

  • git reset [选项] [commitId] [fileName]
    注意: 该命令并没有修改commitId链表,但是修改了当前分支指向的commitId,所以当跳到之前的commitId后,要想回来,是可以的,但必须知道之前的commitId,但是通过 git log 是无法查询到的,相当于清除了一部分commitId。

    选项如下:

    • --mixed :默认参数,将本地仓库跳到制定的 commitId,同时将暂存区修改为commitId的内容;
    • --hard :本地仓库、暂存区、工作区都修改为指定 commitId 的内容;
    • --soft :仅将本地仓库修改为指定 commitId 的内容。

    当有参数fileName时,只有–mixed一种可能,表示HEAD不动,将Index区域,即暂存区里的相应文件更新为commitId里的文件内容

  • git revert commitId
    它和git reset 的区别是:它是产生一个新的commitId,并且当前分支指向它,它保留了之前的所有commitId。

  • git checkout [commitId] [fileName]
    只有参数 commitId时,和git reset --hard commitId作用一样;当有参数fileName时,将Index区域和工作区的相应文件都更新为commitId里的文件内容。
    git checkout commitIdgit reset commitId区别:

GIT中常用命令

7.删除文件

  • rm fileName :仅从工作区删除文件;
  • git rm --cached fileName :仅从暂存区删除文件;
  • git rm fileName:从工作区和暂存区同时删除文件;

要想删除本地仓库中的文件,可以先从暂存区删除然后commit。

从暂存区删除文件;

  • git rm fileName:从工作区和暂存区同时删除文件;

要想删除本地仓库中的文件,可以先从暂存区删除然后commit。