Git学习中遇到的问题及解决方法

一、比较重要的一个命令:
git commit:将当前暂存区中的文件实际保存到仓库的历史记录中。通过这些记录,我们就可以在工作树中复原文件。

git merge --no-ff feature-A(分支名)

二、git解决冲突:

出现冲突之后,出现冲突的文件会变成如下的样子:

标成橘色的部分是自动生成来标识冲突的,可以删掉。

add in feature-A
<<<<<<< HEAD
change in master

master change
=======
commit by feature-C

>>>>>>> feature-C

将文件改成想要的样子,并重新添加到缓存区,并将缓存区中的文件实际保存到仓库的历史记录中。

三、命名问题
尽量使远程仓库的仓库名与本地仓库的仓库名一致以避免混淆,当然不一样也没有任何问题。
如果是要从本地仓库push上去的话,应该在创建远程仓库时把自动生成README.md文件取消,如果不取消会导致一些问题,在下边会提到。

四、git commit -m与git commit -am
git commit -m 提交已加入暂存区的文件

git commit -am 提交跟踪过的文件,省略了add那步

注意:

新创建的文件的状态是未跟踪,未跟踪状态的文件是不能提交的,必须先添加到暂存区。

也就是说如果没有新建文件,只是在已跟踪文件中做了修改,就可以使用git commit -am“”

五、git rebase失败

下面问题出现的原因是rebase之后导致了文件冲突,使用git rebase --continue,它会提示你哪里有冲突。

error: could not apply 33404ed... solve conflict


When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.

To check out the original branch and stop rebasing, run "git rebase --abort".


Could not apply 33404ed... rebase history

CONFLICT (modify/delete): README.md deleted in HEAD and modified in 33404ed... solve conflict. Version 33404ed... solve conflict of README.md left in tree.

六是我个人的理解,也比较乱,以后理解的更深之后会进行改正,也欢迎小伙伴一起交流。

六、git push的问题
目前我遇到的git push问题都是出现冲突
出现问题说需要先git pull
我的理解:
没有同一个点的commit。如果本地仓库比远程仓库新,就会直接更新。
导致冲突的原因可能是:远程仓库的commit状态与本地仓库的commit状态不符。
例:远程仓库是空白仓库时:push不会出现错误;远程仓库有readme文件而本地没有时,会先让你pull。
还有一个就是历史冲突问题:

pull的时候refusing to merge unrelated histories(拒绝合并不相关的历史)
git pull origin master --allow-unrelated-histories//解决后本地仓库的历史会与远程仓库的历史合并
问题:git push -u origin master 
本地仓库和远程仓库存在具有时间差的commit(网上找的)

git pull --rebase origin master





猜你喜欢

转载自blog.csdn.net/lei133691/article/details/80862367
今日推荐