一,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 # 恢复之前暂存的修改