Git常用命令

概述

Git 管理文件的 4 种状态

  • 未追踪(untracked)
  • 已提交(commited)
  • 已修改(modified)
  • 已暂存(staged)

Git 项目的 3 个工作区域

  • 工作目录
  • 暂存区
  • Git 仓库

快速上手

配置用户

配置用户用于记录开发者信息,以便在版本控制记录开发者的操作行为。

git config --global user.name "姓名"
git config --global user.email "邮箱"

初始化仓库

要利用 Git 进行版本控制,首先需要初始化一个仓库。

git init

git init 命令会在当前项目目录中创建一个名为 .git 的隐藏目录,这个目录中包含了暂存区仓库两个区域。可通过 ls -al 查看当前目录所有信息。

查看文件状态

查看当前仓库的文件状态。

git status

添加文件到暂存区

将已开发的部分暂存起来等待提交可以使用 git add 添加到暂存区。

git add "文件名"

把所有文件添加到暂存区。

git add *
git add -A 

从暂存区移除文件

将提交到暂存区的文件删除。

git rm --cached "文件名"

撤销更改

将上次暂存的文件还原到工作区

git checkout "文件名"

提交文件

一个功能开发完成,可以提交到本地仓库永久保存。

git commit -m "描述信息"

查看提交历史

查看以往提交历史记录。

git log

版本回退

通过每次提交的唯一 SHA 值回退到特定历史版本。

git reset --hard "SHA"    工作区会变,历史(HEAD)会变,暂存区也会变
git reset --soft "SHA"    只会改变历史(HEAD)
git reset --mixed "SHA"   (默认选项)历史(HEAD)会变,暂存区会变,工作区不变

拉取历史版本某个文件

git checkout "SHA" --"文件名"

Git 分支

创建分支

在当前分支上新建一个分支,新建分支会继承当前分支所有文件。

git branch "分支名称"

切换分支

git checkout "分支名称"

快速切换分支

创建一个新的分支,并切换到新分支。

git checkout -b "分支名称"

删除分支

git branch -d "分支名称"

合并分支

将目标分支合并到当前分支。

git merge "分支名称"

查看分支

git branch [-a]    (-a 查看所有分支)

远程分支

git branch -r (verb)

删除远程分支

git push origin --delete (branch)

远程仓库

创建远程仓库

  • Git 要求远程仓库是一个以 .git 结尾的目录。
mkdir /a/b/repo.git
cd /a/b/repo.git
git init --bare
  • 远程仓库地址:用户名@主机:路径.git 分支名称
    示例:demo@192.168.100.101:/a/b/repo.git master
  • 远程仓库缩写
git remote add "缩写" "远程仓库地址"
git remote show    // 查看所有远程仓库地址
git remote show "缩写"    // 查看某一缩写仓库地址

向远程仓库同步内容

  • 同步内容

    • git push "远程仓库地址 本地分支:远程分支"
    • git push "远程仓库地址 本地分支"
    • git push "远程仓库地址"
  • 删除远程分支

    • git push "远程仓库地址 :远程分支"
    • git push "远程仓库地址" --delete "远程分支"

从远程仓库里取出内容

  • git fetch
git fetch "远程仓库地址 [远程分支]"
要执行 git fetch,前提已初始化一个仓库。
将远程仓库所有分支更新到本地。
通过 git fetch 更新到的分支只是记录在本地仓库中,并不会更新到工作目录中。
使用 git merge "远程分支" 来进行合并。
  • git pull
git pull "远程仓库地址 [远程分支]"
要执行 git pull,前提已初始化一个仓库。
git pull = git fetch + git merge
  • git clone
可以在不存在本地仓库的情况下执行此命令。
git clone "远程仓库地址 [远程分支]"
git clone = git init + git fetch + git merge

其它

.gitignore 忽略文件

在项目根目录下创建一个 .gitignore 文件,可以将不希望提交的文件或目录罗列在这个文件里。

比较差异

git difftool    // 比较工作区与暂存区的差异
git difftool "SHA"    // 比较工作区与历史提交版本的差异
git difftool "SHA" "SHA"    // 比较两个历史提交版本的差异
git difftoll "分支名称"    // 比较当前分支与特定分支的差异
    原文作者:wangqi
    原文地址: https://segmentfault.com/a/1190000007937804
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞