Git常用命令总结

  • 基础命令

1.查看git命令的帮助

git --help

2.查看git子命令的帮助

git <子命令> --help 

3.查看git版本

git version

4.创建仓库初始化

git init       #本地仓库初始化

git init --bare #创建无工作区的祼仓库,适用于充当远程仓库,一般对应的目录以.git为后缀

5.克隆url指定的项目的所有文件,并在本地创建此项目的git仓库

git clone http://url  

git clone -b develop http://url  #克隆url指定的项目中develop分支

git clone -b tag http://url  #克隆url指定的项目中tag

6.设置全局配置

git config --global user.name "用户名" #设置当前用户的git全局用户名

git config --global user.email "邮箱"  #设置全局邮箱

git config --global color.ui true   #让Git显示颜色,会让命令输出看起来更醒目

git config --global core.editor vim #git默认的编辑器为nano,不常用,需要修改为vim

git config --global --list|-l  #列出用户全局设置,默认保存在~/.gitconfig文件中

git config --global -e #交互编辑配置
  • 文件操作命令

1.添加文件到暂存区

git add "file"       #添加指定文件到暂存区

git add .             #添加当前目录下所有文件到暂存区

2.修改文件名

git mv "file_oldname" "file_newname" 
#将已经进入版本仓库的文件改名,注意:不支持在工作区没有存入暂存区的新创建的文件

3.删除文件

git rm --cached "file"   #只删除暂存区的文件,不删除工作区文件

git rm "file"            #同时删除暂存区和工作区的文件

4.从暂存区复制文件到工作区

git checkout "file"     

5.撤销add到暂存区的文件回到工作区

git restore --staged "file"

6.撤销工作区中文件新的更改

git restore "file"

7.从某个提交中恢复文件

git restore -s "commit" "pathspec"

8.查看文件列表和内容

git ls-files           
#查看暂存区文件,选项-s显示mode bits, object name and stagenumber,-o显示untracked文件

git cat-file -p "blogid"  #查看仓库对象的内容,仓库对象存放在.git/objects目录下

9.查看文件变化

git diff [<path>...]                            #对比工作区和暂存区的区别
git diff --staged|cached [<path>...]           #对比暂存区和本地仓库的前一次提交的区别
git diff [<commit>] [--] [<path>...]            #对比工作区和指定提交的文件的区别
git diff <commit>...<commit> [--] [<path>...]   #提交和提交之间的文件的区别
  • 提交

git commit -m "提交信息"  #提交暂存区的文件内容,并写入本地仓库

git commit -ma "提交信息"    
#添加所有修改(不包括新文件)到暂存区并提交,相当于git add + git commit

git commit --amend --no-edit  #重新覆盖上次的提交

git commit --amend -m "提交信息" #重新提交,覆盖上次的提交

11.查看最近一次提交的详细信息

git show HEAD                  
  • 日志管理

git status #查看工作区的状态

git log    #查看提交日志

git log --oneline #查看提交日志的简要信息,一个提交一行,只显示commit id的前七位

git log --oneline -N  #查看最近N条commit日志

git log  --pretty=oneline #查看提交日志的简要信息,一个提交一行,显示commit id 全部位

git log --stat #查看提交的文件的统计信息

git log -p "commit_id" #查看指定提交和之前提交的变化详细信息

git log --author="<author-name-pattern>" #查看指定作者的提交,邮箱查也可以

git log "file" #查看指定文件的提交

git log "origin/main"  #查看远程仓库的日志

git reflog  #查看分支或其它引用在本地仓库的完整历史记录
  • 回滚提交

git reset --hard|soft|minxed HEAD^^ 
#git版本回滚, HEAD为当前版本,加一个^为上一个,^^为上上一个版本

git reset --hard|soft|minxed HEAD~n 
#回滚前n个版本,0表示当前commit,1表示前一个commit,即相当于HEAD^

git reset --hard|soft|minxed 5ae4b06 
#回退到指定id的版本,使用 git reflog 获取每次提交的ID
  • 分支管理

git branch                       #查看分支及当前所处的分支

git branch -av                   #查看所有本地和远程分支

git branch "分支名"               #创建分支 "分支名"

git branch "分支名" "commit_id"   #基于指定提交创建新分支

git branch -d "分支名"            #删除分支

git branch -m "old" "new"         #修改分支名"old"为"new"

git branch -M "name"              #修改当前分支名称为"name"

git branch -r                     #列出所有远程分支
  • 分支切换

git checkout "分支名"  #切换到已有的分支,HEAD也会自动指向目标分支上的最新提交

git checkout v1.0     
#切换至指定标签v1.0,检出到标签,会导致分离头指针,且新创建的提交也将处于分离的状态

git checkout -b "分支名" #创建并切换到一个新分支

git checkout -b "分支名" origin/"分支名" #利用服务器远程仓库的分支,同步在本地创建分支

git checkout [<commit>]-- <file> ...  #找回在工作区删除的已存入暂存区或提交的文件

git merge master -m <message>  #将master分支合并至当前分支,无选项-m, 则为交互式

git merge orgin/<branch_name>   
#将远程分支合并到本地当前分支,通常应该将存在映射关系(通常为同一个分支名称)的分支进行合并

git merge --abort     #取消合并
  • 标签管理

git tag "tagname"                          #当前commit创建轻量标签
git tag -a "tagname"  -m "message"         #将当前commit创建附注标签
git tag -a "tagname"  -m "message" "commit_id"  #将指定commit创建附注标签
git tag -d "tagname"                    #删除标签
git reset --hard "tagname"              #回滚到指定标签
git tag                                 #查看标签
git tag -l [<pattern>]                  #查看指定模式的标签
git show "tagname"                      #查看指定标签详细信息
  • 远程仓库管理

git remote -v                    #查看远程仓库

git remote show origin           #查看远程仓库详细信息

git remote add origin git@gitlab.example.com:testgroup/testproject.git 
#建立远程仓库和本地origin关联

git remote rename origin new-origin  #修改默认远程仓库名称origin为新的名称new-origin

git remote remove origin             #删除关联
  • 远程仓库的推和拉

git push               #将本地仓库提交代码到远程服务器

git push origin master #将当前分支推送到远程的 master 分支

git push origin dev    #将当前分支推送到远程的dev分支,如果远程没有dev会自动创建

git push -u|--set-upstream origin master 
#将本地 master 分支推送到远程仓库 master,并且参数-u表示以后即可直接用git push 代替此命令

git push origin main:dev #将本地main分支推送至远程dev分支

git push origin :dev #将空分支推送到远程dev,即删除远程dev分支

git push -u origin --all #推送所有分支

git push origin "tagname"       #推送本地仓库指定的tag到远程

git push origin --tag "tagname" #推送本地仓库指定的tag到远程

git push origin --tags          #将本地仓库所有的tag都推送到远程,默认不会推送标签

git push --delete origin "tagname" #删除远程仓库的标签

git pull               
#从远程服务器获取所有分支的代码到本地仓库,并自动合并到本地仓库和工作区

git pull origin dev    
#从远程服务器指定的分支dev拉取代码到本地仓库,并自动合并到本地仓库和工作区

git fetch "remote_name" #获取远程仓库所有分支上的变更

git fetch origin master 
#从远程仓库origin的master分支获取最新版本到本地仓库,但不合并至工作区,需要手动完成合并
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值