Git | 项目同步
本地项目与Github
同步
添加SSH KEY
-
ssh-keygen -t rsa -C “2768817839@qq.com”
成功生成
SSH key
了,可以到C:/Users/
你的用户账号/.ssh
文件夹下看Linux
下可以cd ~./ssh
-
复制
.ssh
文件夹下id_rsa.pub
文件的内容添加到github
在用户文件夹下
-
测试
ssh
连接
关联本地库和远程库
-
git remote add origin git@github.com:RobKing9/CargoManageSystem.git
-
如果
ssh
被占用 将导致或者如果项目是http
协议 -
需要删除远程
git
仓库,执行git remote rm origin
-
执行指令
git remote -v
查看当前情况
将项目上传到Github
上
-
进入
Github
首页,点击New repository
新建一个项目(添加一个Readme
) -
在项目的根路径下
git clone
+ 项目名(下载指定分支 git clone -b dev ***) -
更新代码提交
-
git add .
-
git commit -m "first commit"
-
git push origin master(main)
-
拉取最新代码
git fetch
拉取分支,和远程同步
$ git remote -V
# 获取最新代码到本地(本当前地分支为[branch],获取的远端的分支[origin/branch])**示例:获取远端的origin/master分支
$ git fetch origin master
以上命令的意思是:从远程的origin仓库的master分支下载代码到本地的master分支
# 查看版本差异 查看本地的master与远端的origin/master分支
$ git log -p master
#合并最新代码到本地分支
$ git merge origin/master
解决冲突
git pull origin master # 拉取远程仓库的 master 分支
git merge master # 合并 master 分支到 dev 分支
# 打开冲突文件,编辑保存
git add . # 添加所有文件到暂存区
git commit -m "fix conflict" # 提交修改到本地仓库
git push origin master # 推送 master 分支到远程仓库
远程项目和本地项目同步
需求:如果一开始在自己的分支robking开发,现在主分支master提交了新的代码,想要同步本地到最新的master代码
- 切换到master
git checkout master
- 在master分支拉取最新代码
git fetch origin master
- 切换到自己的开发分支robking
git checkout robking
- 因为本地也在开发,有新的代码没有提交,所有需要先存储本地代码
git stash
- 合并master分支的代码到robking分支,
git merge origin/master
(如果没有stash会报错) - 执行第五步之后,此时robking分支和master分支代码相同了,但是自己开发的未提交的还没合并
- 合并开发的未提交的代码,
git stash pop
,自动合并,如果成功,则自动此备分从git stash中删除。如果有冲突,则你需要手动解决冲突。然后git stash drop
还有一种情况如果想要直接丢失开发的未提交的代码
fork一个开源仓库,然后二次开发,并能跟开源更新保持一致
1.fork开源项目到自己的仓库,比如从
github.com/abc/cherry => github.com/dhl/cherry
然后clone
git clone https://github.com/dhl/cherry
2.接下来cd到自己的仓库,开始如下操作
cd cherry
git remote add upstream https://github.com/abc/cherry.git #设置upstream开源仓库. 可以使用ssh
git fetch upstream master #拉取开源的仓库upstream的master到本地
git merge upstream/master #合并到本地master
git checkout dev #切换到dev
git rebase master #把刚刚拉取的更新merge到dev分支
评论区