【git】实际应用中可能会出现的问题

一、git拉取时报冲突的解决方法 | 代码冲突了如何处理

问题:

error: Your local changes to the following files would be overwritten by merge:
       xxx/xxx/xxx.java
Please, commit your changes or stash them before you can merge.
Aborting

方法一:git stash命令暂存。

  1. git stash命令,先将本地的所有修改就都被暂时存储起来,其中stash@{0}就是刚才保存的标记。后续可以通过此标记访问。
  2. git pull命令,拉取代码
  3. git stash pop stash@{0},还原暂存内容。从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理。
    如果系统提示如下类似的信息:
    Auto-merging c/environ.cCONFLICT (content): Merge conflict in c/environ.c
    意思就是系统自动合并修改的内容,但是其中有冲突,需要解决其中的冲突。
  4. 解决文件中冲突的的部分
    其中Updated upstream 和=====之间的内容就是pull下来的内容,====和stashed changes之间的内容就是本地修改的内容。碰到这种情况,git也不知道哪行内容是需要的,所以要自行确定需要的内容。
    解决完成之后,就可以正常的提交了。
    5.删除stash
    使用git stash drop stash@{0}命令,如果不加stash编号,默认的就是删除最新的,即编号为0的。或者git stash clear命令,清除所有stash

git命令:
git stash pop 会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中

方法二:放弃本地修改,直接覆盖

git reset --hard
git pull

方法三:commit

commit后pull显示冲突 -> 手动merge解决冲突 -> 重新commit -> push
1. 先把本地的修改提交到本地仓库;
2. 拉取远程仓库的代码,使用git pull命令;
3. 如果出现冲突,则手动解决冲突;
4. 解决完成后,使用git add命令将文件添加到暂存区;
5. 使用git commit -m "message"命令提交修改;
6. 最后使用git push origin master将本地代码推送到远程仓库。
or
1、 首先使用 git status 命令查看冲突的文件,确认冲突的文件和冲突的位置。
2、打开冲突的文件,根据提示找到冲突的代码块,手动修改代码,解决冲突。
3、修改完成后,使用 git add 命令将修改后的文件添加到暂存区。
4、使用 git commit 命令提交修改,添加一些描述信息。
5、最后使用 git push 命令将本地代码推送到远程仓库。

猜你喜欢

转载自blog.csdn.net/m0_46459413/article/details/131422675