Git理解及常用操作

一、工作原理 / 流程:
Git理解及常用操作_第1张图片
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库

二、Git常用操作命令
1、常用操作命令
1.git clone GitLab Clone with SSH //(git clone 下载分支, ssh 地址可以直接从 project clone with ssh)
git clone -b <分支名> SSH //下载对应分支

	2.git branch  				// 查看当前所在分支
	3.git branch -a 			// 查看所有分支
	4.git branch -D 			// 删除相关分支
	5.git branch <分支名>     	// 新建相关分支
	6.git checkout <分支名>  	// 切换到相关分支
	
	7.git status   				// 命令用于显示工作目录和暂存区的状态。使用此命令能看到那些修改被暂存到了, 哪些没有, 哪些文件没有被 Git tracked 到
	8.git add 文件名.   		// 命令将文件内容添加到索引(将修改添加到暂存区)
	  git add -A				// 表示添加所有内容
	  git add . 				// 表示添加新文件和编辑过的文件不包括删除的文件
	  git add -u 				// 表示添加编辑或者删除的文件,不包括新添加的文件
	  
	  git checkout        // 取消对文件的修改。还原到最近的版本,废弃本地做的修改。
	  git reset HEAD      // 取消已经暂存的文件。即,撤销先前"git add"的操作  
	  
	9.git commit -m “******” 	// 参照公司的提交规范 
	10.git log 					// 查看 Commit 日志
	
	11.git config --list				// 查看git config 所有信息
	12.git config --global user.name 	// 修改git用户名
	13.git config --global user.email 	// 修改git邮箱 
	
	14.git push <远程主机名> <本地分支名>:<远程分支名> 	  // 上传远端服务器
	   git push origin <分支名>    					      // 根据远程分支名上传远端服务器
	   
	15.git pull = git fetch + git merge    				  // 命令用于从远程获取代码并合并本地的版本。有merge会生成一个merge的提交。
	   git pull <远程主机名> <远程分支名>:<本地分支名>    // 从团队项目代码更新fork项目代码。
	   git pull --rebase = git fetch + git rebase 		  // 从远端获取代码合并,避免菱形产生。不会有merge的提交。
		   在git rebase 过程中,解决冲突后,用 git add 更新内容,再执行 git rebase --continue,即可继续往下合并。
	   
	16.git diff					// 查看文件修改的内容。(需要在git add之前使用,否则查看不了)
	
	17.git remote -v			// 获取本地仓库对应远端版本(SSH路径)。
	18.git remote add proj_master SSH         //新增远程仓库SSH,并命名为 proj_master。
	
	19.git stash 				  // 将本地修改存储起来,git stash list 可查看所有暂存内容
	   git stash pop stash@{0}    // 还原暂存的内容
	   git stash clear 			  // 通过删除所有的暂存库来清空该列表。
	   git stash drop   // 从暂存列表中删除一个特定的暂存。
	
	20.git cherry-pick hash码	  //将指定的提交应用于其他分支 (指定提交对应分支在本地库必须要有,否则无法合并)

2、代码发生冲突(git pull时冲突):
	(1). git stash       				// 将本地修改存储起来,git stash list 可查看所有暂存内容
	(2). git pull       		    	// pull下载内容
	(3). git stash pop stash@{0}   	 	// 还原暂存的内容
	(4). 解决冲突文件即可。
	(5). 冲突解决完毕后,再git add 添加上,即可提交。


3、查看提交内容:
	(1). git log         	    //可查看所有commit日志,有一个commit字段,位于备注上面,复制hash码。
		 git log -- 文件名      //可查看对应文件的历史提交记录
	(2). git show hash码        //可查看本次提交的所有内容
		 git show hash码 -- 文件名     //可查看对应提交中某个文件的提交内容
	(3). 修改commit日志:
		 git commit --amend    		  //操作与vim一致。     还可在客户端界面使用 amend last commit 来修改本次提交。
		 
	(4). 查找对应字符串相关的提交,格式化输出:
		 git log --format='%H|%cn|%s (%cr)' | grep '搜索字符串'
		 --graph 展示分支信息,显示 ASCII 图形表示的分支合并历史。
		 --stat 显示每次更新的文件修改统计信息。 无法与grep同时使用。
		 --format 常用参数列表如下:
			%H: commit hash
			%cn: 提交者名字
			%s: commit 提交说明
			%cr: 提交日期, 相对格式 (1 day ago)
			%ce 作者的电子邮件地址
			%ci: 提交日期, ISO 8601 格式,如 (2021-06-07 10:39:24 +0000)
			%h: 缩短的 commit hash
			%Cblue: 切换到蓝色
			%Creset: 重设颜色
			更多参数参考:https://ruby-china.org/topics/939
		 
4、回退某个版本:
	(1). git revert -n 版本号(hash码)     //revert回退某个版本 *(而不是回退到某个版本)*,相当于将需要回退的版本逆向操作。
	(2). 想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了 *(慎用)*
		 git reset --hard 目标版本号
	(3). commit后但还未push时,需要撤销此次commit:
		 git reset --soft 目标版本号。  
		 --soft:不删除工作空间的改动代码 ,撤销commit,不撤销git add file。
		 --hard:删除工作空间的改动代码,撤销commit且撤销add

三、Git提交规范
1.提交环境确认
使用命令: git config --list 查一下,显示的user.name 和user.emaile 是不是自己的,如果不是,则需要先进行git 相关设置
2.提交内容规范
提交模板:{任务ID task id} {类型 commit type} {标题 commit title} // 第一行,以空格分隔
{提交说明 commit explaination} // 第二行

3.说明:
(1) 任务ID:使用Jira编号, 如:B2BKSGT-26
(2) 类型(该字段必填): a. feat:增加新功能; b. fix:修复bug; c. perf:提高性能的改动 等等
feat:增加新功能
fix:修复bug
perf:提高性能的改动
refactor:代码重构
revert:代码回滚
style:不影响代码含义的改动,例如去掉空格、改变缩进、增加换行
docs:改动了文档相关的内容
test:测试用例修改,包括单元测试、集成测试
ci:与CI有关的改动
build:外部依赖的改动,例如webpack,npm
chore:构建过程或辅助工具的变动

你可能感兴趣的:(git)