常用的git指令汇总

首先通过下图对git的工作机制有一个整体的认知。

 

Workspace<==========>工作区      Index/stage<========>暂存区

Repository<==========>本地仓库   Remote<===========>远程仓库

下面将本人在目前项目管理中常用的git指令列举出来,后期遇到新的常用指令,后续再增加。

一、新建代码库

$ git init# 在当前目录新建一个Git代码库

$ git init project-name # 新建目录并将其初始化为Git代码库

$ git clone url# 下载一个项目和它的整个代码历史

二、配置

$ git config --list# 显示当前的Git配置

$ git config -e --global# 编辑Git配置文件

# 设置提交代码时的用户信息

$ git config --global user.name "name"

$ git config --global user.email "email address"

git help command  # 显示command的help

三、增加/删除文件

$ git add file1 file2 ...# 增加指定文件至暂存区

$ git add dir # 增加指定目录至暂存区,包括子目录

$ git rm file1 file2 ...# 删除工作区文件,并将其从git仓库移除

$ git rm --cached file1...# 删除缓存区文件,但工作区的文件会保留

$ git mv file1 file2 # 将工作区和缓存区的file1重命名为file2

$ git add --all file1 在工作区删除了file1,执行该命令能将其在缓存区也删除

注意: git add 对于版本不同,会有区别:

Git version 1.x:


Git version 2.x:


四、代码提交

$ git commit -s -m “...” # -m表示提交的描述信息 -s显示signed-off-by

$ git commit --amend  #不会产生新的commitID,改写上次提交的commit信息

五、撤销

$ git checkout file # 将暂存区的file恢复到本地工作区

$ git checkout commit file # 恢复某个commit的指定文件到暂存区和工作区

$ git checkout . # 恢复暂存区的所有文件至工作区

$ git reset file # 将暂存区的指定文件恢复至上次commit版本,但不改变工作区文件

$ git reset commit# 重置当前分支的HEAD为指定的commit,同时重置暂存区,工作区保持不变

$ git reset --hard commit# 重置当前分支的HEAD为指定的commit,同时重置暂存区和工作区

$ git reset --keep commit# 重置当前分支的HEAD为指定的commit,但暂存区和工作区保持不变

注意:执行git reset --hard xxxxx后,本地文件也会被覆盖,若之前有通过git add追踪过这些文件,只是没有commit,可以通过git fsck --lost-found指令找回本地文件,本地文件在.git/lost-found/other文件夹下。通过该指令可以恢复任何git add过的文件,通过find .git/objects/ -type f | xargs ls -lt | sedmq 命令,可以找到最近add到本地仓库的m个文件。
六、分支管理

$ git branch # 列出所有本地分支

$ git branch -r# 列出所有远程分支

$ git branch -a# 列出所有本地分支和远程分支

$ git branch branchname # 新建一个分支,并停留在当前分支

$ git branch -b branchname# 新建一个分支,并切换到该分支

$ git checkout branchname# 切换到指定分支,并更新工作区

$ git branch checkout -    # 切换到上一个分支

$ git merge branchname    # 合并指定分支到当前分支

$ git cherry-pick commit  选择一个commit,合并到当前分支

$ git branch -d branchname # 删除分支

$ git push origin --delete branchname# 删除远程分支

$ git branch -dr remote/branchname # 删除远程分支

七、信息查看

$ git status# 显示变更的文件

$ git log# 显示当前分支的版本历史

$ git log --stat# 显示commit历史及每次commit发生变更的文件

$ git log -S keyword# 根据关键词搜索提交历史 

$ git log -p file# 显示指定文件相关的每一次diff

$ git log -5 --pretty --oneline# 显示过去5次提交

$ git shortlog -sn# 按提交次数排序显示所有提交过的用户

$ git log --follow file# 显示指定文件的版本历史,包括文件改名

$ git whatchanged file# 显示指定文件的版本历史,包括文件改名

$ git blame file# 显示指定文件是什么时候什么人修改过的

$ git diff# 显示工作区和暂存区的差异

$ git diff --cached file# 显示暂存区和上一个commit之间的差异

$ git diff HEAD # 显示工作区与当前commit之间的差异

$ git diff commit1 commit2# 显示两次提交之间的差异(可将差异重定向到文件中如 > file.diff)

$ git diff --shortstat “@{0 day ago}”# 显示今天写了多少行代码

$ git show commit# 显示某次提交的元数据和内容变化

$ git show commit:file# 显示某次提交时,某个文件的内容

$ git reflog显示当前分支的最近几次提交

八、远程同步

$ git fetch remote    下载远程仓库的所有变动

$ git remote -v    显示所有远程仓库

$ git remote show remote    显示某个远程仓库信息

$ git remote add remotename     #增加一个新的远程仓库并命名

$ git pull remote branch     #取回远程仓库的变化,并与本地合并

$ git push remote branch     #上传本地指定分支到远程仓库

$ git push remote --all  #推送所有分支到远程仓库


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值