git提交
因为我本地仓库存放A,远程存放B,我想把B拉过来,本地存放A+B,但是执行pull命令是要完全覆盖本地,本地直接变成B了,这样就产生了冲突。先抓取远程仓库的更新到本地,然后与你的本地仓库合并,(如果有冲突就要解决冲突后再合并,冲突问题比较复杂,这里就不详细说了),这样就可以使远程仓库和你本地仓库一致了,然后就可以提交修改了。在第6步,若要新建和远程仓库相同的分支,如main,在提交git push
第一种方式-本地新建
新建一个文件夹用来存放项目文件,如project_1
1.新建本地仓库,新建完成后会生成一个.git文件
git init
新建分支,如test1
git checkout -b test
暂存,添加文件提交到暂存区
git add .
提交,将代码提交到本地仓库
git commit -m 备注信息
连接远程仓库
git remote add origin 仓库地址
提交到远程仓库。test1为新建的分支名称
git push --set-upstream origin test1
报错分析:
git config --global http.sslVerify false
补充:
git push只可以使用--set-upstream,等价与使用 -u
用法:git push -u origin mybranch1
作用:
1.推送本地分支mybranch1到远程主机origin的mybranch1分支
2.追踪远程分支,远程没有mybranch1就自动创建一个
3.设置origin为默认主机
github查看提交的代码
在第6步,若要新建和远程仓库相同的分支,如main,在提交git push的时候会报错,因为需要先拉取在合并,就是将远程仓库里的最新代码拉到本地来,再将本地的推过去
查找资料:
(1)先把git的东西fetch到你本地然后merge后再push,master为远程仓库主分支,现在为main
$ git fetch origin master
$ git merge origin FETCH_HEAD
先抓取远程仓库的更新到本地,然后与你的本地仓库合并,(如果有冲突就要解决冲突后再合并,冲突问题比较复杂,这里就不详细说了),这样就可以使远程仓库和你本地仓库一致了,然后就可以提交修改了。
(2)这2句命令等价于
$ git pull origin master
但是使用git fetch + git merge 更加安全。
(3)git pull --rebase origin master
重定基,可以是历史更加统一,即使提交历史趋向于一条直线。
补充:他们之间的关系
git pull = git fetch + git merge FETCH_HEAD
git pull --rebase = git fetch + git rebase FETCH_HEAD
具体解决如下:
git pull origin main --allow-unrelated-histories
直接用git pull origin main会报错,
原因分析:
可能是这两个仓库内容是完全不一样的,他们之间没有关联。因为我本地仓库存放A,远程存放B,我想把B拉过来,本地存放A+B,但是执行pull命令是要完全覆盖本地,本地直接变成B了,这样就产生了冲突。
而平时的情况是本地存A,在远程修改后变成A+1,想要让本地也同步远程更新,就执行pull命令,用远程的A+1覆盖了本地的A。
解决方案:git pull origin main --allow-unrelated-histories
在git pull 命令后,加上--allow-unrelated-histories ,这样就让两个没关联的内容同时存在了,本地就成功的存放了A+B。
注意,这时候想要将合并成功的本地仓库推入远程仓库,因为本地仓库更新了,所以要先提交,然后再执行push命令
第二种方式--克隆
git clone https://github.com/xuweiqi1461/test.git
其他步骤与第一种方式相同
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)