1 使用tortoise git 解决conflict
Git进行同步的时候,经常会出现冲突,有时候冲突的选项会有三种选项:
- Resolved:直接把文件标识为冲突已经解决,一般是自己手动查看并解决完冲突以后使用。
- Resolve conflict using "MERGE_HEAD (origin/HEAD)" 或者 "Change-to-be-Inte.":这个其实就是以远端的版本作为最新版本来解决冲突。
- Resolve conflict using "HEAD":这个是以本地的版本作为最新版本来解决冲突。
2 合并代码
将开发分支(dev)的代码合并到主分支(master),并把合并后的 master 分支推送到远程仓库,最后切回 dev 分支继续开发
bash
$ git status
On branch dev
Your branch is up to date with 'origin/dev'.
nothing to commit, working tree clean
user /d/WorkSpace/iot-base (dev)
$ git checkout master
Updating files: 100% (1684/1684), done.
Switched to a new branch 'master'
Branch 'master' set up to track remote branch 'master' from 'origin'.
user /d/WorkSpace/iot-base (master)
$ git pull
Already up to date.
user /d/WorkSpace/iot-base (master)
$ git merge dev
create mode 100644 iot-web/test_box-tcp1025180111883/.lck
user /d/WorkSpace/iot-base (master)
$ git push
Total 0 (delta 0), reused 0 (delta 0)
To http://gitlab.iot.sedt.com/iot/iot-base.git
ef9c3e5..9008df5 master -> master
user /d/WorkSpace/iot-base (master)
$ git checkout dev
Switched to branch 'dev'
Your branch is up to date with 'origin/dev'.
user /d/WorkSpace/iot-base (dev)
3 代码仓库转移
第一步:克隆裸仓库
git clone --bare http://gitlab.self.com/iot-front/help-md.git
git clone:克隆远程仓库到本地。
--bare:这是一个关键选项。它会创建一个裸仓库(bare repository)。与常规克隆不同,裸仓库不包含工作区文件(即您看不到项目源码文件),它只包含 Git 版本库本身的数据(位于 .git目录下的所有内容,如提交历史、分支、标签等)。
效果:执行后,当前目录下会生成一个名为 help-md.git的文件夹,这就是您的裸仓库。它体积更小,且专门用于远程同步操作,而不是直接进行代码修改。
第二步:进入仓库目录
cd help-md.git
cd是操作系统命令,用于切换当前工作目录。
目的:进入刚刚克隆下来的裸仓库目录 help-md.git,以便后续执行 Git 操作。
第三步:镜像推送
git push --mirror http://gitlab.other.com/xx/_git/help-md
git push:将本地仓库的内容推送到远程仓库。
--mirror:这是另一个关键选项。它会将本地仓库所有的引用(refs),包括所有分支、标签、远程跟踪分支等,全部强制推送到指定的目标远程仓库。这确保了目标仓库成为源仓库的一个完美镜像副本。
效果:执行后,http://gitlab.other.com/.../help-md这个新仓库将拥有与原始仓库 http://gitlab.self.com/iot-front/help-md.git完全一样的所有分支、标签和提交历