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,解决冲突。

相关推荐
云端奇趣1 小时前
探索 3 个有趣的 GitHub 学习资源库
经验分享·git·学习·github
F_D_Z5 小时前
【解决办法】git clone报错unable to access ‘xxx‘: SSL certificate problem:
网络·git·网络协议·ssl
等风来不如迎风去10 小时前
【git】main|REBASE 2/6
git
艾伦~耶格尔10 小时前
IDEA 配置 Git 详解
java·ide·git·后端·intellij-idea
云兮杜康10 小时前
IDEA中用过git之后文件名颜色全变红
java·git·intellij-idea
睡不醒的小泽10 小时前
git merge 和 git rebase
git
艾伦~耶格尔10 小时前
Git 下载及安装超详教程(2024)
git·gitee·码仓
weixin_4381973811 小时前
linux部署redis,整合ansible和redis
linux·redis·git
安全在心中12 小时前
gitee公钥设置、创建库及使用
git·gitee
无条件做异梦20 小时前
git维护【.gitignore文件】
git