C++ (week9):Git

文章目录

1.git介绍

2.git安装

bash 复制代码
sudo apt install git

3.git配置

在Gitee、GitHub上注册账号,配置 user name 和email。家目录下会生成.gitconfig文件。

4.获取自己的SSH公钥

1.生成公钥:

bash 复制代码
ssh-keygen -t rsa -C "具体的邮箱"
然后三次回车

2.复制公钥:.ssh目录下的id_rsa.pub里就是公钥信息

bash 复制代码
cat ~/.ssh/id_rsa.pub

3.粘贴公钥:

gitee,设置,安全设置,SSH公钥,粘贴进去


5.新建仓库


6.邀请开发者

7.克隆远程仓库到本地

1.获取仓库的地址

2.执行命令,将项目以文件夹形式 克隆到本地

bash 复制代码
git clone  仓库地址

8.在本地进行开发

项目基本架构的文件夹

9.本地项目推送到远程仓库

1.若有.git隐藏目录,证明该项目使用了git进行管理。

2.常用git命令

(1)提交

bash 复制代码
git add .
git commit -m "姓名: 操作内容"

(2)查看仓库的状态

bash 复制代码
git status

(3)把操作推送到远程仓库

bash 复制代码
git push origin master

origin是别名,在.git/config中设置

(4)查看git日志

bash 复制代码
git log

(5)版本回退

bash 复制代码
git reset --hard HEAD^  //回退到上一个版本
git reset --hard 版本号哈希值(一部分也行),版本可以前进和后退

(6)误删文件的恢复:工作区删除,但没提交 (commit)

bash 复制代码
git checkout -- .

10.git的工作原理

①工作区

②暂存区:.git/index

③版本库

生成版本号,用哈希值表示。它们以链表方式进行存储。


示例:


11.分支管理

(1)合作开发的方式

1.每一个成员都操作一个不同的文件,只使用master分支

(2)分支管理


bash 复制代码
git merge --no-ff -m "提交描述" develop  //合并分支

切换分支、合并分支

(3)分支合并的原理、冲突管理

1.如果本地与远程修改的不是同一个文件,则先pull,拉取远程更新本地的其他文件,再push。

2.如果本地与远程修改的是同一个文件,则会冲突。先将本地冲突文件拷贝到其他无关目录下,再pull合并远程。再对比本地冲突文件和远程有什么区别,人工合并代码后,再push。

12.git 与 svn 的区别

git相当于在本地也有一个版本控制库,远程仓库也有一个版本控制库。

13.设置alias别名

14.版本号标签

bash 复制代码
git tag v1.0		     //给当前分支的当前版本,打上v1.0的标签
git tag v1.1  versionno	 //给某个版本号(哈希值)的分支打上v1.1的标签
git tag 			//查看标签的情况
git tag -d v1.0		//删除本地标签


删除标签

15.多用户操作不同的文件

bash 复制代码
git pull

修改文件之前,先与远程仓库同步(pull),再推送(push)

版本冲突

bash 复制代码
git pull --force origin master:master

操作同一个文件,容易与远程冲突

解决冲突:cp本地修改的文件到其他位置 备份,然后用远程仓库强制覆盖本地仓库,再把备份的修改文件mv回来

bash 复制代码
git pull --force origin master:master

16.强行覆盖

(1)远程强行覆盖本地仓库

bash 复制代码
git pull --force origin master:master

(2)本地强行覆盖远程仓库

bash 复制代码
git push --force origin master:master

17.解决git冲突问题

解决git冲突是一门很深的学问。后续慢慢补充。

上文中15也提到了 冲突时,用 备份 + 强行覆盖的方式,先pull再push,解决冲突。

相关推荐
技术小结-李爽5 小时前
【工具】git与gitee和gitlab和github等等有什么区别?
git·gitee·gitlab
为伴只为你10 小时前
将已有git工程转为使用LFS
git
x-cmd12 小时前
AI 时代的 Git 革命:多 Agent 并发开发的新基础设施
git·ai·agent·代码管理·开发者工具·多智能体协作·worktree
XS0301061 天前
Git远程仓库实操笔记
笔记·git·elasticsearch
Java成神之路-1 天前
Git 合并冲突完全指南:分支合并、拉取冲突、推送冲突
git
NutShell Wang1 天前
拆解 GitHub gh-stack:堆叠 PR 工作流的设计取舍与工程实现
前端·git·开源·github·代码复审·开发者工具·vibe coding
咩咩啃树皮1 天前
第62篇:Git团队协作完整流程——企业多人开发规范、分支管理、冲突解决、上线流程(最终封笔篇)
git
.Hypocritical.2 天前
Git 入门教程
git
AI行业学习2 天前
Claude Code + cc-switch + Git + Node.js 全套下载+安装+配置完整版
开发语言·git·python·前端框架·node.js·html·notepad++
豆角焖肉2 天前
.gitignore:配置文件+初学入门
git·gitignore