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

相关推荐
এ慕ོ冬℘゜10 小时前
Git 基础入门|和 SVN 对比 + 四大区域 + 常用命令详解
git·svn
DevLoom_13 小时前
macOS 命令行 curl/git 报 SSL 证书错误?eMudhra 事件完整修复指南
git·macos·ssl
keyipatience14 小时前
Git学习(4)Git分布式优势与实战配置全解析
git·学习
SH的全栈笔记16 小时前
敲下 git add 的那一刻,.git 里多了什么
git·后端
正经教主19 小时前
【FDE系列】阶段2:Day 45(up详细版):综合实战 — Docker + Nginx + Git 完整部署与本周收官
人工智能·git·nginx·docker·fde
Change!!2 天前
git小乌龟,切换到新分支处理
git·git切到新分支,旧代码贮藏
LannyChung2 天前
PowerShell 下 git log 中文乱码的完整排查与解决
windows·git
import_random2 天前
[git]本地main,origin/main,远程main(关系2)
git
golang学习记2 天前
Zed Git重大更新:目录级对比支持分栏Diff
git·vscode·zed
阿俊-全栈开发3 天前
LikeShop 单商户高级版二开项目的 Git 分支管理与版本发布规范
git·likeshop·likeshop开源商城·likeshop多商户