GIT关联并同步远程仓库和本地仓库

ぐ巨炮叔叔 提交于 2021-02-15 04:50:52

一、创建远程仓库

这是初始状态,远程仓库已经创建了一些文件了

 

二、创建本地仓库

先在本地创建一个空文件夹(可以作为工作空间),然后cmd进入这个文件夹执行git init

接着,可以在这个工作空间中创建若干项目,比如我用IDEA创建一个C++项目,

注意最好在工作空间的子目录中创建项目,这样就能创建多个项目互不干扰,又能在同一个git仓库中管理

比如我创建一个project1项目,项目根目录为 C:\03_WorkSpace\test_ws\project1,

在新建项目中新建一些文件,比如我创建了一个跟远程仓库同名的文件 README.md,这样能演示同步问题

三、修改git管理的本地文件版本状态

先查看一下目前本地仓库情况,

上图中README.md文件状态有两项,一项是changes to be committed,因为前面新建了这个文件还没提交,此时可以提交。

另一项是not staged状态,因为新建这个文件后修改了内容,可以使用git add转为staged以便提交,或者用git checkout放弃修改。若直接提交这个文件的话,修改的内容将不会提交。

最下面是还没有纳入版本库管理的文件,可以用git add加入版本管理。

关于GIT文件的状态转换,可参考 https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%AE%B0%E5%BD%95%E6%AF%8F%E6%AC%A1%E6%9B%B4%E6%96%B0%E5%88%B0%E4%BB%93%E5%BA%93

Git 下文件生命周期图。

现在先将README.md和main.cpp变为staged状态。

四、提交修改到本地仓库

五、关联本地和远程仓库

六、合并本地仓库和远程仓库

因为本地和远程分别独立建了仓库,两个库并不同步

git pull命令可以同步远程和本地,注意git pull = git fetch + git merge 并自动解决冲突,

但是会隐藏许多细节,造成一些更大的错误,所以不要直接使用这个命令,最好分步骤手动同步。

七、推送并解决冲突

直接冲突会说远程和本地不同步

再pull一次

报错 fatal: refusing to merge unrelated histories

按网友做法,pull时加参数 --allow-unrelated-histories , pull成功

再push一次

成功了。

注意push过程也有可能出现HEAD detached from XXX错误,

用以下办法解决,参考自 https://blog.csdn.net/u011240877/article/details/76273335

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!