第一种方式-本地新建

新建一个文件夹用来存放项目文件,如project_1

1.新建本地仓库,新建完成后会生成一个.git文件

git init

c7b697efd3bb4f1ebf6f707bdcc0cbb9.png

新建分支,如test1

git checkout -b test

d5a23ca7adfb4c438c67260ce65e78f3.png

暂存,添加文件提交到暂存区

git add .

提交,将代码提交到本地仓库

git commit -m 备注信息

c285b82c71cd41238242e51346054a09.png

连接远程仓库

git remote add origin 仓库地址 

0757e9d6db8a49a583d016d4bfa50183.png

提交到远程仓库。test1为新建的分支名称

git push --set-upstream origin test1

报错分析:

git config --global http.sslVerify false

6597faaaddee4b1dbb26f861d825fde1.png

补充:

git push只可以使用--set-upstream,等价与使用 -u

用法:git push -u origin mybranch1

作用:

1.推送本地分支mybranch1到远程主机origin的mybranch1分支

2.追踪远程分支,远程没有mybranch1就自动创建一个

3.设置origin为默认主机

4f21fe415c634f5e87f0dfa3e9cce532.png

github查看提交的代码

80e863b108fe4feeb48acd586ade2a1f.png

在第6步,若要新建和远程仓库相同的分支,如main,在提交git push的时候会报错,因为需要先拉取在合并,就是将远程仓库里的最新代码拉到本地来,再将本地的推过去

9875bd15dc484be493692d0a95761446.png

查找资料:

(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

aaf9a6d70434415196ad7f5d99f89c80.png

直接用git pull origin main会报错,

3632cadc57d94147915e3054636737ec.png

原因分析:

可能是这两个仓库内容是完全不一样的,他们之间没有关联。因为我本地仓库存放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

63773d71c4644defb27ec78f1ce49407.png

其他步骤与第一种方式相同

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐