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

相关推荐
b1ng5 小时前
新人程序员 Git 一站式指南
git·github
程序员的世界你不懂6 小时前
IDE 关联 Git 操作
ide·git
weixin_428498498 小时前
Git Submodule 介绍和使用指南
git
jingshaoqi_ccc19 小时前
GitKraken最后一个免费版本和下载地址
git·github·gitkraken·版本管理工具
乌云暮年19 小时前
Git简单命令
git·gitee·github·batch命令
用户1259265423201 天前
使用 Docker 搭建 Gitea 并实现 Git HTTP 自动登录
git
一只毛驴1 天前
谈谈对git stash的理解?
git
长风破浪会有时呀1 天前
Git 学习笔记
笔记·git·学习
中微子2 天前
Git Rebase 详解:概念、原理与实战示例
git
荔枝吻2 天前
【保姆级喂饭教程】Windows下安装Git Flow
windows·git·git flow