Git 常用命令小结

▼魔方 西西 提交于 2019-12-31 11:14:28

特别感谢

廖雪峰-Git教程

1. Git 安装和 SSH 配置

整理了一下写在:git 和 tortoisegit 的配置

2. 理解 repository

图源:工作区和暂存区
git版本库

3. 常用命令

  • git init
    作用: 创建 repository。
    描述: 创建本地仓库,该目录下自动创建 .git 文件夹,用于跟踪管理仓库,默认隐藏,使用 ls -ah 可以查看隐藏文件。

  • git add <file-name>
    作用: 将修改添加到暂存区(stage)。
    描述: 工作区的每次修改都先添加到暂存区。
    常用: git add . (将当前分支下的所有修改添加到暂存区)

  • git commit
    作用: 将暂存区的所有修改提交到分支。
    描述: 可以将多次修改一并提交,提交后工作区是 clean 状态,相当于提交一个版本。建议加上描述性文字,用来标识此次提交的版本。每次提交之后,会自动生成一个 commit 号,用来标识此次提交。
    常用: git commit -m "some description"

  • git status
    作用: 查看该仓库的状态。
    描述: 可以得到当前处于哪一个分支、哪个文件被修改、修改处于哪个阶段等信息,还会给出一些建议性的命令。
    当文件已修改但未添加到暂存区,信息是 “Changes not staged for commit” ;
    当文件已添加到暂存区但未提交,信息是 “Changes to be committed”;
    当合并分支时出现冲突,可以查看各分支的提交进度情况。

  • git diff
    作用: 查看修改内容。
    常用: git diff <file-name>

  • git log
    作用: 查看提交的所有版本。
    描述: 从最新一次提交的版本开始显示,显示的内容包括每次提交的 commit 号、描述性文字、时间等。可以添加一些参数使得显示的内容更精简。还可以查看分支的合并情况。
    常用:
    git log --pretty=oneline (查看所有提交的精简版本)
    git log --graph (查看分支合并图)

  • git reset
    作用: 退回到某一版本。
    描述: 当前版本用 HEAD 表示。上一个版本是 HEAD^,上上个版本是 HEAD^^,上100个版本是 HEAD~100
    还可以通过 commit 号,退回到某一个指定版本。
    常用:
    git reset --hard HEAD (对于已添加到暂存区但未提交的文件,撤销暂存区的修改,即撤销 git add 这句命令,将修改重新放回工作区)
    git reset --hard HEAD^ (返回上一个版本)
    git reset --hard <commit_id> (commit号不需要写全,只需前几位即可,Git 会自动去找相应的版本)

  • git relog
    作用: 查看所有分支的所有操作记录。
    描述: 用于记录每一次命令,可以追溯已删除的版本。

  • git checkout
    作用: 1. 丢弃工作区的修改(撤销)。 2. 切换到某一分支。
    描述:撤销 操作中,修改也包括删除操作,所以也可以撤销误删操作(前提是误删的文件被提交过版本库)。实际上该命令是用已提交到版本库里的 file 替换工作区的 file,所以如果该 file 从未被提交到版本库,是无法撤销的。
    常用:
    git checkout -- <filename> (文件已修改但未添加到暂存区,该命令丢弃掉工作区的修改。“–” 这个参数很重要。)
    git checkout <branch_name> (切换到某一分支)
    git checkout -b <branch_bame> (创建新分支并切换)
    git checkout -b <branch-name> origin/branch-name (在本地创建和远程分支对应的分支)

  • git rm
    作用: 删除某一文件。
    描述: 删除操作之后,也需要 commit。

  • git remote
    作用: 关联远程库。
    描述: 命名远程库,默认是 origin。
    常用:
    git remote add origin <url> (连接到远程库)
    git remote -v (查看远程库信息)

  • git pull
    作用: 从远程库中抓取最新提交。
    描述:git push 时可能会失败,因为其他人也对同样的文件进行了修改并已推送了提交。所以需要抓取最新提交到本地,解决冲突之后再推送。有时候直接 git pull 失败,原因是需要指定本地 dev 与远程 origin/dev 分支的连接(详见 git branch)。

  • git push
    作用: 把本地库的所有内容推送到远程库。
    描述: 可以添加一些参数,如 -u,第一次将本地 master 分支推送到远程库中新的 master 分支,该参数将本地 master 分支与远程库中 master 分支关联起来,相当于默认执行一次 git remote
    常用:
    git push -u origin master
    git push origin <tag_name> (推送一个本地标签)
    git push origin --tags (推送全部未推送过的本地标签)
    git push origin :refs/tags/<tag_name> (删除一个远程标签)

  • git clone
    作用: 克隆远程库到本地。
    描述: 可以使用 HTTP 或 SSH。
    常用: git clone <url>

  • git branch
    作用: 查看当前分支。
    描述: 列出所有分支,当前分支前面标 “*” 号。一般来说,master 分支用来发布新版本(稳定),dev 分支用来开发(不稳定),个人在 dev 上创建自己的分支进行工作。修复 bug 时会创建一个 bug 分支,添加新功能时,会创建一个 feature 分支,诸如此类。
    常用:
    git branch (列出所有分支)
    git branch -d <branch_name> (删除指定分支) git branch --set-upstream-to=origin/<branch_name> <branch_name> (指定本地 dev 与远程 origin/dev 分支的连接,一般 <branch_name> 是 dev)

  • git merge
    作用: 合并指定分支到当前分支。
    描述: 合并指的是,将当前分支上已提交的修改合并到某一分支(如 master),使得 master 做出相同的修改。首先需要切换到被合并的分支,默认使用 fast-forward (ff) 模式合并,该模式合并速度很快,但有冲突时不能用该模式。
    常用:
    git merge <branch_name> (默认快速模式合并)
    git merge --no-ff -m "some commit descript" <branch_name> (普通模式合并,此次合并创建一个新的 commit)

  • git switch
    作用: 切换分支。
    描述: 可以创建分支、切换分支等。
    常用:
    git switch -c <branch_name> (创建并切换分支)
    git switch <branch_name> (切换到已有分支)

  • git stash
    作用: 储藏工作现场。
    描述: 一般用于修复 bug 时,当前工作还未完成,但要优先创建 bug 分支。使用该命令后,工作区清空,返回 master 创建相应 bug 分支进行修复,修复完成后再恢复之前的工作分支。
    常用:
    git stash (储藏工作现场)
    git stash list (查看 stash 内容)
    git stash apply <stash_name> (恢复工作现场,恢复后 stash 内容不删除)
    git stash drop <stash_name> (删除 stash 内容)
    git stash pop (恢复工作现场,同时删除 stash)

  • git cherry-pick
    作用: 复制一个特定的提交到当前分支。
    描述: 将某一个已提交的修改复制到当前分支,避免重复操作。
    常用: git cherry-pick <commit_id>

  • git tag
    作用: 为某次提交设置对应的标签。
    描述:
    常用:
    git tag <tag_name> (为当前最新版本打标签)
    git tag (查看所有标签)
    git tag <tag_name> <commit_id> (为指定 commit 创建标签)
    git tag -a <tag_name> -m "some commit descript" <commit_id> (为指定 commit 创建带有说明的标签)
    git tag -d <tag_name> (删除一个本地标签)

  • git show
    作用: 查看。
    描述: 可用于查看标签信息。
    常用: git show <tag_name>

  • git add
    作用:
    描述:
    常用:

  • cat <filename>
    作用: 查看文件内容。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!