Gitee是一个基于Git的代码托管和协作平台,类似于GitHub。它提供了一个云端的代码仓库,使开发者能够轻松地将他们的代码存储在一个中央位置,并与团队成员进行协作。
在使用Gitee之前我们基本上属于是横向版本控制,即打好多个压缩包,每个压缩包中的文件是一个版本的代码,通过这种方式来控制不同的版本。
Gitee上的版本控制属于纵向版本控制,即通过时间线上的提交记录来控制版本,其网络关系图如下几张显示。
graph LR
远程仓库 --pull--> 本地仓库
远程仓库 --clone--> 本地仓库
本地仓库 --push--> 远程仓库
远程仓库'<--pull request-->远程仓库
本地仓库 -.- 暂存区
暂存区 --reset--> 内容
内容 -- add --> 暂存区
暂存区 --commit--> 本地仓库
鉴于内容比较多,请优先看提交自己写的代码到仓库上
、多人合作
部分的内容。其他部分作为补充,可以有用到的时候再看
git clone 远程仓库的.git链接
请先安装VSCode插件-Git系列
打开VSCode
点击左下角 Git Graph
打开 Git Graph 视图
在User Details
中设置用户信息,在Remote Configuration
中设置远程仓库的链接。
!!强烈推荐完成一个功能就提交一次记录,并附上规范易懂的提交消息!!
将修改的内容提交到本地仓库中
提交所有内容
提交修改的内容
当合并代码发生冲突时,VSCode会在弹出弹窗提醒,点击后可以跳转到对应文件。
点击右下角蓝色在合并编辑器中解析
按钮后可以跳到合并视图中,这个视图会显示发生冲突的位置,方便我们合并内容
此时可以选择接受传入的内容
或者接受当前内容
。但如果两种内容中都有需要保留的内容,此时可以手动编辑,将上面两个窗口中要保存的内容粘贴到下面窗口中。
合并完成后点击右下角蓝色完成合并
按钮
点击Fork按钮Fork仓库到自己的空间
+Pull Request
以创建一个PR源分支
更换为 当前的开发分支
,目标分支
替换为master
分支提交记录
中可以看到这个分支中的所有提交记录文件改动
中可以浏览这个功能开发的时候都进行了什么改动优先级
、标签
、关联issue
、里程碑
根据情况选择具体内容。创建Pull Request
即可完成创建在合作时不免会遇到对同一个文件的修改,而在多人修改时就容易产生一些代码冲突,在提交 pull request 合并代码时就会标红如下图;
通常一些简单的合并gitee会帮我们自动完成,但遇到复杂问题的时候就需要我们手动处理了。
将目标分支和源分支都拉取到本地
点击左下角红标按钮进入分支选择页面,点击即可选择分支并且如果本地没有该分支会自动拉取内容。
通过第一步将目标分支和源分支都拉到本地
最好再将分支和远程仓库同步一下
将当前工作分支设置为目标分支,在BRANCHS
目录中右键源分支并选择 Merge Branch into Current Branch
选择 Merge
选项
可以看到左边出现了merge提示,并且在 合并更改
中列出了待处理的冲突文件。
点击需要合并的文件会显示冲突内容,不过这个视图并不适合处理合并内容。点击右下角在合并编辑器中解析
打开合并视图。
在黄色冲突区域选择接受左边的或者右边的内容,但是如果2边都有内容合并的话就需要手动将需要的内容复制到下方黄色区域(框框)中
处理完成后点击 完成合并
,和远程分支同步一下
再回到 Pull request 我们发现现在不存在冲突了,可以直接合并。
如果遇到报错:
fatal: refusing to merge unrelated histories
则表明合并的2个分支不存在共同的历史,但是正常的合并时2个分支应当有共同的历史。
我认为这次出现的问题是一种罕见的情况,只发生在刚创建存储库时。
--allow-unrelated-histories
命令git merge --allow-unrelated-histories origin/master
然后就可以继续合并了
git config --global user.name "gitee用户名"
git config --global user.email "gitee绑定的邮箱"
git remote add origin <remote-url>
git pull 远程仓库的.git链接
git add .
git commit -m "修改内容简述"
git push
git push -u origin master
注:文件夹的名字随便起,和仓库名称无关
作为一个团队,我们不可能只有一个人在修改相关代码和文档,该部分介绍了在团队合作时可能遇到的一些问题以及解决方案。
!!!强烈建议每次修改代码前先拉取一下远程仓库中的代码!!!
如果远程仓库中的版本与本地版本更新记录不一致(不在同一时间线上),则会拒绝提交,并显示error
此时需要先拉取一下远程仓库中的文件并参考合并文件的相关操作
在拉取远程仓库的文件时如果拉取的文件和本地新版本的文件没有冲突,则可能会跳出一个MERGE_MSG
,并显示在vscode窗口中(其他情况不太了解),接受即可,当然,也可以写一下合并消息来描述目的。
如果在拉取时远程仓库版本与本地在同一时间线上,则会直接覆盖本地文件。
如果拉取的文件和本地文件有冲突,则会在命令行显示
CONFLICT (content): Merge confTict in README.md
Automatic merge failed; fix conflicts and then commit the result
此时应当打开有冲突的文件,并选择保留哪一种更改。
.gitignore
文件来在版本更新的时候忽略掉这些文件和文件夹。.gitignore
文件可以有效减少推送和拉取文件时的文件量以提高速度。首先,在根目录下创建一个.gitignore
文件,然后在文件中以行为单位,每行写一个要忽略的文件或文件夹匹配语句,具体参照以下几种常见的语句:
bin/
: 忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件/bin
: 忽略根目录下的bin文件/*.c
: 忽略 cat.c,不忽略 build/cat.cdebug/*.obj
: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj**/foo
: 忽略/foo, a/foo, a/b/foo等a/**/b
: 忽略a/b, a/x/b, a/x/y/b等!/bin/run.sh
: 不忽略 bin 目录下的 run.sh 文件*.log
: 忽略所有 .log 文件config.php
: 忽略当前路径的 config.php 文件git init
git remote add origin <remote-url>
https://xxx.git
)git remote set-url origin 你仓库的git/sshURL
查看当前远程仓库的设置
git remote -v
移除当前远程仓库
git remote remove origin
添加新的远程仓库
git remote add origin <remote-url>
其中<remote-url>为要连接到的远程仓库的URL(形如https://xxx.git
)
git config --list
git config --global user.name "gitee用户名"
git config --global user.email "gitee绑定的邮箱"
git config --global core.quotepath false
git add .
git commit -m "<修改内容简述>"
git pull 远程仓库的git链接
git clone 远程仓库的git链接
git push
git push -f [origin <branch-name>]
git log
git reset
git reset --soft <commit-hash>
git reset --mixed <commit-hash>
git reset --hard <commit-hash>
<commit-hash>
替换为你要回退到的目标版本的提交哈希值。注意:回退版本会修改你的提交历史,请确保在执行重置操作之前备份你的代码。
请注意,这些命令会修改你的本地代码库,如果你已经将代码推送到远程仓库,需要谨慎处理以避免引起不一致。
git checkout <commit-hash> -- <file-path>
<commit-hash>
替换为目标版本的提交哈希值,<file-path>
替换为要恢复的文件路径。请注意,这些命令会修改你的本地代码库,如果你已经将代码推送到远程仓库,需要谨慎处理以避免引起不一致。
本部分内容还未进行过尝试,先添加以防未来有需要
在 GitHub 或 Gitee 上实现版本回退,通常会涉及到以下几个步骤:
克隆仓库:
git clone
命令将远程仓库克隆到本地。git clone <远程仓库地址>
查看历史提交:
git log
命令可以查看提交历史,获取提交的哈希值。git log
切换到要回退的版本:
git checkout
命令,切换到你想要回退到的版本。git checkout <commit的哈希值>
或者,你也可以使用相对引用,比如相对当前版本的前一个版本:
git checkout HEAD~1
创建新的分支(可选):
git branch 新分支名
git checkout 新分支名
推送到远程仓库(如果需要):
git push
命令。git push origin 新分支名
或者,如果你在主分支上进行了回退,可以使用强制推送:
git push -f origin 主分支名
请注意,强制推送可能会导致一些问题,因此请确保你了解可能产生的后果,特别是在团队协作的情况下。
需要注意的是,这个操作会将远程仓库的历史记录更改为你回退后的版本,因此请确保你的操作是经过慎重考虑的。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。