Please enable Javascript to view the contents

常用 Git 命令

 ·  ☕ 2 分钟

1. 基本概念

  • Workspace:工作区,工程文件
  • Index:暂存区,也叫待提交更新区,在提交进入 repo 之前,把所有的更新放在暂存区
  • Local Repository:本地仓库,存放在本地的版本库,HEAD 指向当前的开发分支
  • Remote Repository:远程仓库,远程服务器的版本库

基本的 Git 工作流程如下:

  1. 在工作目录中修改某些文件
  2. 对修改后的文件进行快照,然后保存到暂存区,git add
  3. 提交更新,将保存在暂存区域的文件快照永久转储到本地 Git,git commit
  4. 更新到远程,将本地 Git 推送到远程,git push

2. 初始化

  • 初始化一个新仓库
1
$git init
  • 克隆一个仓库
1
$git clone <git-base-url>
  • 查看仓库远程主机
1
$git remote -v

3. 分支

  • 列出全部分支
1
$git branch
* 不带参数,仅列出本地
* `-a` 参数,列出本地和远程
* `-r` 参数,仅列出远程
  • 切换分支
1
git checkout <branch_name>
  • 拉取分支更新
1
git pull
*`-a`参数,拉取全部分支更新
  • 基于当前分支,创建本地分支
1
$git branch <branch_name>
  • 基于远程分支,创建本地分支
1
$git branch <branch_name> origin/<branch_name>
  • 切换分支
1
$git checkout <branch_name>
  • 推送本地分支到远程
1
$git push origin <branch_name>
  • 删除一个远程分支
1
$git push origin --delete <branch_name>

或者,推送一个空的本地分支到远程

1
$git push origin :<branch_name>
  • 删除一个本地分支
1
$git branch -D <branch_name>

4. 版本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 查看命令历史,常用于帮助找回丢失掉的 commit
git reflog  
# 回退到具体某个版本              
git reset --hard c7926e6 
# 显示当前分支的版本历史
git log
# 显示commit历史,以及每次commit发生变更的文件
git log --stat
# 搜索提交历史,根据关键词
git log -S [keyword]

5. 提交

  • 新增代码
1
git add *
  • 查看状态
1
git status
  • 提交代码
1
git commit -m "commit msg"
  • 丢弃某个文件
1
$git checkout -- <file_name>
  • 丢弃全部文件修改
1
$git checkout
  • 更新 master 到自己的分支分支
1
2
$git checkout <branch_name>
$git merge master
  • 从远程获取最新版 master 并 merge 到自己的分支
1
$git pull origin master

相当于先 fetch ,然后合并

1
2
3
git fetch origin master:tmp
git diff tmp 
git merge tmp

6. 标签

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 查看全部标签
git  tag
# 切换标签
git checkout <tag_name>
# 新建标签
git tag v1.0    #新建标签,默认位 HEAD
git tag v1.0 c7926e6  #对指定的 commit id 打标签
git tag -a v1.0 -m 'v1.0 r'   #新建带注释标签
# 删除标签
git tag -d <tag_name>
# 删除远程标签
git push origin :refs/tags/<tag_name>      

7. 参考


微信公众号
作者
微信公众号