(一)获取对方私库代码并上传到自己的gitlab
步骤 1: 克隆对方的私有仓库
首先,您需要在本地计算机上克隆对方的私有仓库。这通常需要使用HTTPS或SSH URL,并且可能需要身份验证(如用户名和密码、SSH密钥等)。
# 假设您已经配置了SSH密钥或知道HTTPS的用户名和密码 git clone https://center.javablade.com/blade/BladeX-Links.git upstream-repo # 或者使用SSH(如果可用) # git clone git@center.javablade.com:blade/BladeX-Links.git upstream-repo # 进入仓库目录 cd upstream-repo
步骤 2: 将克隆的仓库添加为上游远程仓库(如果尚未命名)
如果您在克隆时没有使用origin
作为远程仓库的名称(通常Git会默认使用origin
),则可能需要重命名它以避免混淆。但在这个例子中,我们将其命名为upstream
以明确其用途。
# 如果远程仓库已经命名为origin,并且您想保留它用于其他目的,则执行以下操作 git remote rename origin upstream
步骤 3: 将您的Git服务器仓库添加为远程仓库
现在,您需要将您自己的Git服务器仓库添加为远程仓库,以便您可以将更改推送回去。
# 假设您的Git服务器仓库URL是git remote add origin http://192.168.2.204/bladeiot/bladex-links.git git remote add origin http://192.168.2.204/bladeiot/bladex-links.git # 验证远程仓库列表 git remote -v
步骤 4: 将上游仓库的内容推送到您的Git服务器
由于您的Git服务器上的仓库是空的,您可能需要将上游仓库的所有分支和标签都推送到您的Git服务器。但是,通常只推送main
(或master
)分支就足够了,除非您还需要其他分支或标签。
# 推送main分支(或上游仓库中的主分支名称) git push -u origin master # 如果您还需要推送其他分支或标签,请相应地执行命令 # git push origin <branch-name> # git push origin --tags
步骤 5: 在您的Git服务器上创建开发分支
在本地创建开发分支,然后将它推送到Git服务器。
# 在本地创建开发分支 git checkout -b jw-dev-branch # 将开发分支推送到Git服务器 git push -u origin jw-dev-branch
此时使用使用git branch 查看分支情况:
表示当前有两个分支,且当前处于master主分支上
(二)更新主分支
当对方修改后,将对方的修改更新到自己的主分支上。
快捷操作(将上游主分支master更新内容更新到自己服务器主分支master,即远程上游->本地->服务器):
git checkout master
git fetch upstream
git merge upstream/master
git push origin master
详细步骤说明:
1、切换主分支
进入需要更新的upstream文件夹,切换主分支(如果已经在主分支,则跳过该步骤)。
切换到 master
分支,以便从远程仓库拉取最新的更改。
git checkout master
确保已正确配置远程仓库
通过 git remote -v
检查你的远程仓库配置:
origin http://192.168.2.204/bladeiot/bladex-links-ui.git (fetch) origin http://192.168.2.204/bladeiot/bladex-links-ui.git (push) upstream https://center.javablade.com/blade/BladeX-Links-UI.git (fetch) upstream https://center.javablade.com/blade/BladeX-Links-UI.git (push)
2、拉取 upstream
的最新代码
从 upstream
仓库拉取更新到本地分支:
git fetch upstream
如果提示授权失败,则多执行几遍,如果跳转到浏览器,则会提示成功。
正常情况下,第一次执行拉取命令时(例如 git fetch upstream
),Git 会提示输入用户名和密码。输入后会自动保存。
如果多尝试几次还是有问题可以先清除旧的认证信息再重新执行:
git credential-cache exit
git fetch upstream
3、查看拉取的更新内容
拉取成功后,可以用以下命令查看更新的内容:
git log upstream/master --oneline
日志没有显示完全,可以按回车查看,直到显示<end>,此时可以输入q退出
以下是分页器一些常用操作键:
- 空格键:向下翻一页。
- 回车键:向下翻一行。
- b:向上翻一页。
- k:向上翻一行。
- g:跳到文件开头。
- G:跳到文件末尾。
或者查看与当前本地分支的差异:
git diff master upstream/master
4、合并 upstream
的更新到本地分支
如果你当前的分支是 master
,可以将 upstream/master
的更新合并到本地:
git merge upstream/master
如果有冲突,Git 会提示冲突的文件,需要手动解决冲突。
5. 同步更新到你的服务器
将合并后的更新推送到你的服务器 origin
:
git push origin master
6. 更新其它分支(如果需要)
如果需要更新其它分支,也是按照一样的步骤:
// 比如更新dev分支,先切换到 dev 分支 git checkout dev // 合并 upstream/dev git merge upstream/dev // 推送到服务器 git push origin dev
7. 同步Tag(如果需要)
如果需要将 upstream
的 Tags 也同步到服务器,可以推送 Tags:
git push origin --tags
(二)主分支合并到开发分支
1、切换到您的开发分支
拉取完 master
分支的最新更改后,切换到您的开发分支 jw-dev-branch
。
git checkout jw-dev-branch
2、将主分支的更改合并到您的开发分支
git merge master