git常用命令、git提交代码、git常见问题解决

git提交代码

正常的开发流程:
1、拉取代码
git clone xxx
2、查看有哪些分支
git branch -a
3、切换到分支
git checkout xxx
4、本地修改代码后,提交代码
git add xxx 添加到暂存区
git commit -m “关于这些修改的描述” 提交到本地仓库
git push origin HEAD:refs/for/分支名 提交到远端仓库
正常的流程就完成了
如果代码需要修改一下,然后追加提交
git add xxx
git commit --amend --no-edit 追加提交,且不修改提交日志
git push origin HEAD:refs/for/分支名 提交到远端仓库

git常用命令

git status 查看本地代码状态
git log 查看提交日志
git log --filename查看某个文件的提交日志
git blame filename - L n,m
git clone 创建一个git本地仓库,拉取代码到本地
git pull 拉取最新代码到本地
git add xxx 添加文件到暂存区
git commit 提交文件到本地仓库
git push 推送提交到远端仓库
git reset commit_id 回退到commit_id对应的提交
git describe --tags 查看当前tags
git diff xxx.c > test.patch 将xxx.c文件的修改生成patch
git diff . > test.patch 将所有文件的修改生成patch
git apply test.patch 将patch合入本地库

git常见问题解决

如果push代码到远端仓库后发现merge conflict怎么办?
1、为什么会出现这种情况
在一些大型项目中,可能存在多人同时对一些模块的开发情况。甲和乙在拉取了同一个Base来开发,假如有一个文件test.c,该文件定义了一个全局变量int a = 10,甲把这个a改成了100,当甲完成后就正常提交上去了,后来乙把a改成了200,然后也提交上去,就发生了冲突;
2、如何解决冲突
a.如果是比较简单的冲突,则可以直接在提交里面修改了;

b.如果冲突较多的话就可以在本地解掉冲突,重新提交;
	一种方式:
		确保自己的代码已经push到了远端仓库,以免丢失掉自己的修改;
		然后使用git log 查看提交历史,log如下
		
		commit_id  123456 
		author:	乙
		date:xxxxx
				commit message
				
		commit_id	123455
		author:	甲
		date:xxxxx
				commit message
				
		此时我们回退本地的仓库;
		 	git reset 123455
		完成这步后我们本地的代码仓库就和甲提交的时候一致了;
		 
		此时我们把乙自己的提交拉取到本地;
			git fetch remote xx	这里的remote 指的是要拉取得仓库,xx则是具体的某一笔提交,一般这个可以直接在git提交的网站上复制而来
		然后将刚拉下来的提交合并到本地仓库,使用
			git cherry-pick FETCH_HEAD
		因为两笔提交是存在冲突的,所以git cherry-pick 不会成功执行完成,当中断执行的时候,查看一下仓库状态;
			git status
			会显示冲突的文件
			modified:test.c
			说明冲突是这个test.c文件引入的,打开文件找到冲突地点,解决冲突。
			可以搜索符号‘>>>’快速定位到冲突点
			
			解决完冲突后,再继续执行:
				git cherry-pick --continue

	此时就没有冲突了,就可以正常提交代码到远端仓库

猜你喜欢

转载自blog.csdn.net/qq_42208449/article/details/130593634