Git个人学习笔记(三)指令篇

指令篇

​ 以下是我自己整理的常用Git命令。分为本地操作命令,远程仓库相关命令,分支操作命令,保护现场操作命令。

一、本地操作命令

git init 						//把当前的目录变成可以管理的git仓库,生成隐藏.git文件
	
git add XX  					//把xx文件添加到暂存区去。

git commit –m “XX”  			//提交文件 –m 后面的是注释。
    
git commit --amend -m "XX"		//更正最近的一次提交
    
git status   					//查看仓库状态

git diff  XX     				//查看XX文件修改了那些内容

git diff > commit.patch			//生成补丁文件,还未提交的修改,不包含commit信息

git diff --cached > commit.patch	//生成补丁文件,已经add但是未commit的修改。或 git diff --staged

git diff HEAD 					//查看已缓存的与未缓存的所有改动

git apply --stat commit.patch	//检查patch文件

git apply --check commit.patch	//检查patch是否可以应用

git apply commit.patch			//打补丁

git apply --reject commit.patch	//自动合入 patch 中不冲突的代码,同时保留冲突的部分
								//同时会生成后缀为 .rej 的文件,保存没有合并进去的部分的内容,可以参考这个进行冲突解决。
								
git format-patch 				//生成补丁文件,包含commit信息

git am commit.patch				//打补丁,针对 git format-patch 生成的补丁:

git log        					//查看历史记录

git log --stat					//git查看历史提交修改了哪些文件

git log --stat -<number> 		//限制显示历史提交的数量

git reflog      				//查看历史记录的版本号id

git reset --hard HEAD^  		//撤销之前的commit,并且舍弃之前commit的修改,或者 git reset  –hard HEAD~数字 回退到上几个版本,不写数字默认为一。

git reset --soft HEAD^ 			//撤销之前的commit,并且保留之前的commit修改

git reset --hard 版本ID		   	//版本号为使用git log查询到的黄色字符串

git reset HEAD <file>			//把暂存区的修改撤销掉(unstage),重新放回工作区

git checkout -- XX  			//把XX文件在工作区的修改全部撤销。

git clean -nxfd					//删除未跟踪的文件,-n显示将要被删除的文件
								//-f删除 untracked files  -fd untracked的目录也一起删掉  						
								//-xfd不管他是否是.gitignore文件里面指定的文件夹和文件,都会删除

git rm XX         				//删除XX文件,知识删除工作目录和暂存区的文件,也就是取消跟踪

git rm --f XX					//删除XX文件的跟踪,并且删除本地文件,不写文件名默认删除所有文件
    
git rm --cached XX				//删除XX的跟踪,并保留在本地。--cached指的是暂存区,不写文件名为丢弃所有文件

git mv 旧文件名 新文件名   		//重命名文件

git tag <tagname> [commit id]	//用于新建一个标签,默认为HEAD,也可以指定一个commit id

git tag -a <tagname> -m "标签信息"   //可以指定标签信息

git show <tagname>					//查看标签信息

git tag								//可以查看所有标签

git tag -d <tagname>				//可以删除一个本地标签;创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。

二、远程仓库相关指令

git remote 							//查看远程库的信息
    
git remote rm origin				//删除已关联的名为origin的远程库
    
git remote –v 						//查看远程库的详细信息

git remote add origin 线上仓库地址	//关联一个远程库 origin可以修改为github或gitee

git clone 线上仓库地址				//从远程库中克隆 

git push							//将本地当前分支 推送到 与本地当前分支同名的远程分支上
    
git push origin XX 					//将本地当前分支 推送到 与本地当前分支同名的远程分支上

git push origin 本地分支名:远程分支名	//将本地当前分支 推送到 远程指定分支上

git pull							//将与本地当前分支同名的远程分支 拉取到 本地当前分支上

git pull origin	远程分支名			//将远程指定分支 拉取到 本地当前分支上

git pull origin 远程分支名:本地分支名	//将远程指定分支 拉取到 本地指定分支上
    
git checkout –b dev  origin/dev		//创建dev分支并切换到dev分支上,同时关联远程Dev分支 克隆线上仓库后使用

git push --set-upstream origin 本地分支名 	//将本地分支与远程同名分支相关联
// 简写方式
git push -u origin 本地分支名

git push origin <tagname>			// 可以推送一个本地标签;

git push origin --tags				//可以推送全部未推送过的本地标签;

git push origin :refs/tags/<tagname>	  	//可以删除一个远程标签。如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除 `git tag -d <tagname>` 然后使用该命令从远程删除

PS:当你的小伙伴从远程库clone时,默认情况下,你的小伙伴只能看到本地的master分支,需要使用git checkout –b dev origin/dev 指令创建远程origin的Dev分支到本地。


三、分支操作命令

git branch name  				//创建分支
    
git checkout –b dev  			//创建dev分支 并切换到dev分支上。git checkout –b dev origin/dev同时关联远程Dev分支
    
git branch  					//查看当前所有的分支
    
git checkout master 			//切换回master分支 使用switch也行
    
git merge dev    				//在当前的分支上合并dev分支
    
git merge --no-ff -m "XX" dev	//不使用Fast forward模式合并,合并后被合并(dev)分支依旧保留
    
git branch –d dev 				//删除dev分支
    
git cherry-pick 版本ID		   	//复制一个特定的提交到当前分支(常用来修复BUG)

四、现场保护相关命令

git stash 				//把当前的工作隐藏起来 等以后恢复现场后继续工作
    
git stash list 			//查看所有被隐藏的文件列表
    
git stash apply 		//恢复被隐藏的文件,但是stash内的内容不删除
    
git stash drop 			//删除stash内的文件
    
git stash pop 			//恢复文件的同时 stash的内容删除

五、子模块使用

git submodule add <url> <path>	//仓库中添加子模块 url为子模块的路径,path为该子模块存储的目录。

// 克隆带有子模块的仓库后,子模块目录默认无任何内容,需要使用一下命令同步子模块
git submodule init && git submodule update
// 等同于
git submodule update --init --recursive

git submodule update			//更新子模块
    
#******************** 删除子模块 *******************
# 删除子模块文件夹
git rm --cached test
rm -rf test
#删除.gitmodules文件夹中相关子模块信息 
[submodule "assets"]
  path = test
  url = https://github.com/cain/cain-test.git
#删除.git/config文件夹中的相关子模块信息
[submodule "test"]
  url = https://github.com/cain/cain-test.git
#删除.git文件夹中的相关子模块文件
rm -rf .git/modules/test
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值