Git指南 - 项目实战中天天用的那些基础命令

Git是一款常用的版本控制工具,之前将一些基本命令都放在了另一篇Blog中,发现用一些git命令的时候很不方便,故此抽离出来

关联篇

全篇均为git命令,以下的大部分命令,我在实战开发中基本都有使用过(直接Ctrl + F 搜索)

Git 配置

查看配置

查看 config 整体信息

#查看所有配置信息,包含系统、用户、项目三层的配置信息
git config -l  

#查看系统config
git config --system --list 或 git config --system --l
  
#查看当前用户(global)配置
git config --global  --list 或 git config --global --l
 
#查看当前仓库配置信息
git config --local  --list 或 git config --local  --l

查看 config 指定信息

#查看git版本 
git –version  
#获取当前用户名称 
git config –global user.name   
#获取当前用户邮箱
git config –global user.email  

增、删配置

  • 添加配置项
git config [--local|--global|--system]  section.key value
#可选的,对应本地,全局,系统不同级别的设置
[--local|--global|--system]  

#区域下的键
section.key 
#对应的值
value 
--local 项目级
--global 当前用户级
--system 系统级 

#示例语句 - 更好git用户信息中的用户名
git config --global user.name laosan
  • 删除配置项
git config [--local|--global|--system] --unset section.key

更多配置

git config --global color.ui true   #打开所有的默认终端着色
git config --global alias.ci commit   #别名 ci 是commit的别名
[alias]  
co = checkout  
ci = commit  
st = status  
pl = pull  
ps = push  
dt = difftool  
l = log --stat  
cp = cherry-pick  
ca = commit -a  
b = branch 

user.name  #用户名
user.email  #邮箱
core.editor  #文本编辑器  
merge.tool  #差异分析工具  
core.paper "less -N"  #配置显示方式  
color.diff true  #diff颜色配置  
alias.co checkout  #设置别名
git config user.name  #获得用户名
git config core.filemode false  #忽略修改权限的文件  

设置用户信息

主要有俩种设置场景

  • 统一配置用户信息,主要 采用 –global 全局配置的操作命令
  • 不同项目指定用户信息不同,减去 –global 全局配置的操作命令

统一配置 - 用户信息

# 设置当前登录的用户名称 
git config –-global user.name "Your Name" 
# 设置当前登录的用户邮箱
git config –-global user.email "[email protected]"

# 以下俩条可以选择性忽略(设置 git命令的别名)> <
# 设置git命令的别名
git config --global alias.ci commit
# 设置git命令的别名             
git config --global alias.co checkout                       

拉新项目

场景:本地无项目,首次从远端拉项目到本地

git init  //初始化(将当前目录变为仓库) 

git clone 网站上的仓库地址  //从远程库克隆到本地

场景:先有本地库,后有远程库,将本地库push到远程库

关联本地库和远程库:
git remote add origin 网站仓库地址 

第一次将本地仓库推送到远程仓库
git push -u origin master

基础命令

git status #刷新代码当前状态

git add -u #提交已修改

git add 文件名 #添加一个文件到暂存区 

git add .  #添加所有文件到暂存区 

git add -A    #将本地所有改动添加到暂存区(git add -A = git add . + git add -u)

git commit -m"备注" #备注

git pull   #拉取远程代码

git diff  #对比暂存区和工作区差异 

git push   #推送

git checkout –文件名  #撤销工作区的修改 

git log - 期望条目(数字)#查看近期log,如git log -3就是查看近期提交的3条commit信息

git log #查看所有log

git tag  #查看所有标签 

git merge dev  #将dev分支合并到当前所在分支上 

git fetch    #从远程获取最新版本到本地,不会自动merge

分支命令

git branch  你的分支名  #创建新分支

git branch -m <old> <new>  #本地分支重命名

git checout 你的分支名  #切换分支

git checkout -b 你的分支名 #创建新分支同时进行分支切换

git branch -l #只查看本地分支 (l-location)

git branch -r #只查看远程分支

git branch -a #查看所有分支 

git branch -vv  #查看当前的本地分支绑定的远端的那一条分支

git branch -b test origin/test #将远程分支test拉取到本地,并新建分支test(如果失败,可以先运行 git fetch,如下)

git pull origin test (远程分支名称) #把远程分支上的内容都拉取到本地

git fetch origin develop(develop为远程仓库的分支名)

git push origin test #将本地test分支推送到远程 (不能直接新建远程分支,需要新建本地分支后,再把本地分支推送到远程) 

git push origin test:master #提交本地test分支作为远程master分支 

git push origin test:test #提交本地test分支作为远程test分支 

git push origin :test #提交空分支作为远程test分支(相当于删除远程test分支) 

git remote show origin #查看远程库的一些信息,及与本地分支的信息
    
git pull --rebase    #暂存本地变更,合并远程最新改动,合并刚刚暂存的本地变更(不产生无用的merge的同步)

git push --all origin       # 将所有本地分支都推送到origin主

git fetch -p #删除掉没有与远程分支对应的本地分支

git fetch origin -p  #用来清除已经没有远程信息的分支,这样git branch -a 就不会拉取远程已经删除的分支了

------删除分支-----

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

git branch -d test #删除本地test分支 

git branch -D test #强制删除本地test分支 

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

进阶命令

git remote -v  #查看远程仓库 

git remote rm orgin  #删除远程仓库(慎用)

git reset HEAD 文件名  #撤销暂存区的修改 

git reset --hard HEAD^  #回退到上个版本(撤销暂存区全部修改)

git reset --hard 该版本ID  #回退到历史版本 

git reflog  #查看以往版本号(本地的commit)

git status -s     #将结果以简短的形式输出

git status --ignored   #显示被忽略的文件

git log -p    # 查看详细修改内容  

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

git log --graph   # 显示何时出现了分支和合并等信息

git commit -a     #把修改的文件添加到暂存区(不包括新建(untracked)的文件),然后提交

git commit --amend    #修改提交的commit(没有push)

git commit --amend -m "comment"  #修改commit注解

diff 命令


git diff –cached  #对比暂存区和工作区差异 

git diff master  #对比历史区和工作区差异 

git diff --cached    #查看暂存起来的文件(stage)与并未提交(commit)的差别

git diff --staged    #同上

git diff HEAD        #查看最后一次提交之后的的差别(HEAD代表最近一次commit的信息)

git diff --stat     #查看显示简略结果(文件列表)

git diff commit1 commit2    #对比两次提交的内容(也可以是branch,哈希值)

Tag标签命令

一般在某个版本下进行tag标记,做节点使用

git tag 标签名  #为当前版本打标签 

git tag 标签名  #为历史版本打标签 

git tag -a 标签名 -m “标签说明”  #指定标签说明 

git show 标签名  #查看某一个标签 

git tag-d 标签名  #删除某一个标签

git tag -a v1.0.0 -m ‘版本说明’  #打tag 

git push origin –tags  #将所有tag推送到远端(前提是add、commit、push后) 

git push origin tag名称  #将指定tag推送到远端 

git tag -d tag名称  #删除本地标签 

git push origin : refs/tags/tag名称  #删除远端标签

其余命令

较少使用的命令


git add -i   #打开一个交互式界面按需求添加文件

git rm <file>    #删除文件

git rm -r <floder>  #删除文件夹

git rm --cached <file>  #从版本库中删除文件,但不删除文件      

git mv <old_name> <new_name> #文件重命名

git push -u origin master   # -u指定origin为默认主机,后面就可以不加任何参数使用git push了

git push -f origin          # -f强推,在远程主机产生一个"非直进式"的合并(non-fast-forward merge)

猜你喜欢

转载自blog.csdn.net/qq_20451879/article/details/129184854
今日推荐