【开发工具】Ubuntu下Git工具项目代码管理:配置、拉取、推送、冲突处理(托管仓库:Gitee)

一,gitee配置部分

1. 用户名和邮箱设置

在这里插入图片描述
gitee注册阶段,主要需要记录两个信息,用户名和邮箱地址,该信息会在git的设置中用到

2. 创建仓库

在这里插入图片描述

  • 建立仓库时建立采用master-develop-Release模式;
  • 开发人员建立自己的私有分支,独立开发时,与自己的独立分支进行同步;
  • 代码版本更新时,在develop分支尝试合并,功能调通完成且无误后,合并到主分支;

二,git配置部分(Ubuntu)

在这里插入图片描述

1. 安装 Git

sudo apt update
sudo apt install git

2. 配置 Git 用户名和邮箱

这些信息会与 Gitee 上的账户关联。在终端中执行以下命令,将 Your Name 和 your_email@example.com 替换为自己的信息:

git config --global user.name Your Name
git config --global user.email your_email@example.com

在这里插入图片描述

3. 初始化本地代码仓库

打开终端,进入包含你代码的目录,然后初始化一个新的 Git 仓库:

cd /path/to/your/code
git init

在这里插入图片描述
打开显示隐藏文件选项,可以看到git的文件
在这里插入图片描述

4. 设置上传文件目录

在类似ns-3的大型仿真工具中,build/等目录占用空间较大,且不涉及开发源码,可以选择不上传;
4.1 创建或编辑 .gitignore 文件
在你的项目根目录下检查是否已经存在 .gitignore 文件,如果不存在,可以使用以下命令创建一个:

touch .gitignore

如果已经存在,直接使用文本编辑器(如 vim、nano 等)打开该文件进行编辑:

nano .gitignore

4.2 添加 build 目录到 .gitignore 文件
在打开的 .gitignore 文件中添加以下内容:

build/

这行代码表示忽略项目根目录下的 build 目录及其所有子目录和文件

进一步地,ns-3可以仅仅保留src/scratch/目录,则设置 .gitignore如下:

# 忽略所有文件和目录
*
# 不忽略 src 目录及其子内容
!src/
!src/**
# 不忽略 scratch 目录及其子内容
!scratch/
!scratch/**
# 不忽略 .gitignore 文件本身
!.gitignore

5. 添加文件到暂存区

将代码目录中的所有文件添加到 Git 的暂存区:

git add .

6. 提交代码到本地仓库

将暂存区的文件提交到本地仓库,并添加提交说明:

git commit -m "Initial commit"

7. 关联本地仓库和 Gitee 远程仓库

使用以下命令将本地仓库与 Gitee 上的远程仓库关联起来:

# http地址在gitee中查到
git remote add origin https://gitee.com/qianzhang1123/ns-3-irudp.git

8. 推送代码到 Gitee 仓库

将本地仓库的代码推送到 Gitee 上的远程仓库:

git push -u origin master

在这里插入图片描述

9. 使用 Git 凭证存储

默认情况下,每次推送操作都需要输入用户名和密码,我们可以让 Git 永久存储凭证信息:

git config --global credential.helper store

当下一次进行需要认证的操作时,输入用户名和密码后,Git 会将这些信息存储在 ~/.git-credentials 文件中,之后的操作就无需再次输入。

三,冲突处理

在推送操作时,可能会遇到以下报错:
在这里插入图片描述
表明远程仓库的 master 分支上有你本地仓库没有的提交,即远程仓库和本地仓库的提交历史出现了分歧。Git 为了避免覆盖远程仓库的代码,拒绝了你的推送请求。

1. 先拉取再合并

最常用的方式,能将远程仓库的更新合并到本地分支,然后再推送。

git pull origin master
  • 无冲突情况:如果拉取和合并过程中没有冲突,Git 会自动完成合并操作,之后你就可以再次尝试推送:
git push origin master

在这里插入图片描述

2. 手动解决冲突

查看冲突文件:
使用 git status 命令查看哪些文件存在冲突。

git status

打开有冲突的文件,会看到类似如下的标记:

<<<<<<< HEAD
本地代码
=======
远程代码
>>>>>>> 分支名

需要根据实际情况,选择保留哪些代码,删除冲突标记。例如,若想保留本地代码,可删除 ======= 及其下面的部分和 >>>>>>> 分支名;若想保留远程代码,可删除 <<<<<<< HEAD 和 ======= 及其上面的部分。

解决完冲突后,使用 git add 命令将解决冲突后的文件添加到暂存区。

git add <冲突文件路径>

提交合并结果:使用 git commit 命令提交合并结果

git commit -m "解决与远程仓库的冲突"

在这里插入图片描述
最后推送即可:

git push origin master

在这里插入图片描述

三,私有分支开发

以下是建立私有分支并提交你在 src/ 目录下编辑的代码的详细步骤:

1. 创建并切换到私有分支

使用 git switch 命令创建并切换到一个新的私有分支

git switch -c private-branch

private-branch 是要创建的私有分支的名称

2. 添加修改到暂存区

使用 git add 命令将 src/ 目录下的修改添加到暂存区。

git add src/

此命令会将 src/ 目录下所有有修改的文件添加到暂存区。

3 提交修改到本地私有分支

使用 git commit 命令将暂存区的修改提交到本地的私有分支,并添加有意义的提交信息,方便后续查看和理解此次提交的内容。

git commit -m "Update modules in src/ directory"

4. 推送私有分支到远程仓库

将本地的私有分支推送到远程仓库,以便其他团队成员查看或协作

git push -u origin private-branch

-u 选项会将本地分支和远程分支进行关联,以后再推送该分支时,只需使用 git push 即可。

四,分支合并

作为管理员,将多个私有分支合并到一个目标分支。下面以 private-branch私有分支合并到 master 分支为例:

1. 确保本地仓库是最新状态

在进行合并操作之前,要保证本地仓库的目标分支是最新的,避免出现不必要的冲突。

# 切换到目标分支
git switch master
# 拉取远程仓库的最新内容
git pull origin master

2. 逐个合并私有分支

逐个将私有分支合并到目标分支。在合并每个分支之前,可以先查看分支的提交历史,确认是否有需要注意的地方。

# 查看私有分支的提交历史
git log private-branch
# 合并第一个私有分支到 master 分支
git merge private-branch

如果在合并过程中没有冲突,Git 会自动完成合并操作。如果出现冲突,Git 会在有冲突的文件中标记出冲突部分,需要手动解决这些冲突。

3. 推送合并后的分支到远程仓库

当所有私有分支都合并到目标分支后,将合并后的目标分支推送到远程仓库。

git push origin master

vscode使用git

【手把手教你在VS Code中使用 Git】vscode的git功能有相对方便的可视化界面,该部分已经有比较详细的文章:
https://blog.youkuaiyun.com/techforward/article/details/133203445

常用git操作

1. 推送

git status
git add src/*
git commnit -m "xxxxxx"
git push

2. 放弃本地修改,直接拉取

git reset --hard HEAD
git pull origin lcy

3.暂存当前分支的修改,切换到另一分支

git stash
git checkout lcy
...
git stash pop  # 恢复之前暂存的修改
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值