git 常用指令

内容纲要

git add

  1. git add ./myfile
    将myfile文件加入暂存区

git commit

  1. git commit -m "first commit"
    将暂存区提交到本次仓库,并设置本次提交的信息

  2. git commit -a
    等同于先执行git add 然后再执行commit,这里只提交所有跟踪过的文件。未加入跟踪的文件不会被提交。该命令不支持提交指定文件

git diff

  1. git diff ./myfile
    查看工作区myfile文件的改动,若不指定文件,则查看整个工作区改动。

  2. git diff --cached ./myfile
    如果myfile改动后被add到暂存区,需要增加 --cached才能查看,若不指定文件名,则查看所有文件。

  3. git diff HEAD
    可以查看所有改动,包括暂存区与工作区

  4. git diff a34f13 68ab2c
    查看两次提交的改动

git reset

  1. git reset
    回退所有内容到上一个版本
    隐藏的参数为 --mixed和HEAD

  2. git reset 92039
    回退到指定提交
    隐藏的参数为 --mixed和HEAD

  3. git reset --soft 268bbc
    回退commit到268bbc版本,本地仓库及暂存库内容不发生变化。

  4. git reset --mixed 268bbc
    回退到268bbc版本,保留文件的更改,清空暂存区内容。
    隐藏的参数为HEAD, --mixed是reset的默认值,与soft、hard互斥。

  5. git reset --hard
    回退到268bbc版本,所有被跟踪的文件会恢复到该版本时的样子。暂存区也会被清空,未提交的更改将会被丢弃。

git rm

  1. git rm ./myfile
    移除后文件不存在。如果文件更改且提交到了暂存区,需要使用git rm -f ./myfile强制移除。
    = "rm ./myfile" + "git add ./myfile"

  2. git rm --cached ./myfile
    只是移除暂存区中的myfile,该文件依旧在工作区,且和执行该命令前文件内容一致。

    git log

  3. git log --oneline
    增加oneline参数时,查看的是简洁log信息

  4. git log --gragh
    该参数会显示拓扑结构

  5. git log --author=wuzhe
    查看由wuzhe提交的部分

git blame

git blame [<options>] [<rev-opts>] [<rev>] [--] <file>
  1. git blame ./myfile
    查看myfile的更改记录

git remote

git remote -v
git remote rename old new
git remote remove name
  1. git remote show https://github.com/wuzhe/git_test
    查看本地存储的远程仓库信息

  2. git remote add origin https://github.com/wuzhe/git_test
    增加远程仓库,且在本地对其命名为origin

git fetch

git fetch [<options>] [<repository> [<refspec>...]]
  1. git fetch origin
    获取origin仓库的内容到本地,此时并没有合并。我们可以通过git merge origin/master合并到当前分支

git pull

git pull <远程主机名> <远程分支名>:<本地分支名>
  1. git pull origin master
    将origin对应的远程分支master拉取到本地,与当前分支合并。

  2. git pull origin master:local_branch
    将origin远程分支master拉去过来与本地local_branch合并

git push

git push <远程主机名> <本地分支名>:<远程分支名>
  1. git push origin master
    将本地的master分支推送到origin主机的master分支。等同于git push origin master:master

  2. git push origin --deleter master
    删除origin主机的master分支

留下评论