Git学习笔记 - Git基本操作和GitHub

Git学习笔记 - Git基本操作和GitHub

  • 一、Git简介
  • 二、Git基本命令
    • 1、git设置用户签名
    • 2、初始化本地库
    • 3、查看本地库状态
    • 4、添加暂存区
    • 5、将暂存区的文件提交到本地库
    • 6、历史版本
    • 7、修改并提交文件
    • 8、 版本穿梭
  • 三、Git分支
    • 1、查看分支
    • 2、创建分支
    • 3、修改分支
    • 4、切换分支
    • 5、合并分支
    • 6、合并分支产生冲突
  • 四、GitHub操作
    • 1、创建远程库
    • 2、创建远程仓库别名
    • 3、推送本地分支到远程仓库
    • 4、拉取远程库内容
    • 5、克隆远程仓库到本地
  • 五、团队协作
    • 1、团队内协作
    • 2、跨团队协作
  • 六、SSH免密登录

一、Git简介


Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。当版本进行切换时,工作区的文件内容会变成切换后的版本下的。

Git官网: https://git-scm.com/

Git的基本操作流程:
Git学习笔记 - Git基本操作和GitHub_第1张图片

名词解释:

(1)版本控制:版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。

(2)集中式版本控制工具:集中式版本控制工具如SVN等,只有一个单一的集中管理的服务器,该服务器保存了所有文件的修订版本,协同工作的人们都通过客户端连到这台服务器取出最新的文件或者提交更新。

(3)分布式版本控制工具:分布式版本控制工具如Git等,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。

(4)代码托管中心:是基于网络服务器的远程代码仓库,一般称为远程库。 搭建在局域网中的远程代码仓库是GitLab,搭建在互联网中的远程代码仓库是GitHub(外网)Gitee 码云(国内网站)

二、Git基本命令

1、git设置用户签名

Git 首次安装必须设置用户签名,否则无法提交代码。签名的作用是区分不同操作者身份,用户的签名信息在每一个版本的提交信息中能够看到。

注意:这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系。

基本语法:

git config --global user.name 用户名 
git config --global user.email 邮箱 

设置完成后可以在home目录(C:\Users\当前登录的用户名)下的.gitconfig文件中查看相关信息。

2、初始化本地库

用git对目录进行管理,需要通过初始化让git获取这个目录的管理权。初始化本地库成功后会生成一个.git的隐藏文件。

基本语法:

git init

Git学习笔记 - Git基本操作和GitHub_第2张图片

3、查看本地库状态

基本语法:

git status

(1)首次查看(工作区没有任何文件)

Git学习笔记 - Git基本操作和GitHub_第3张图片

(2)工作区新增文件 hello.txt

Git学习笔记 - Git基本操作和GitHub_第4张图片

(3)再次查看(检测到未追踪的文件)

Git学习笔记 - Git基本操作和GitHub_第5张图片

4、添加暂存区

将工作区的文件添加到暂存区。

基本语法:

git add 文件名

Git学习笔记 - Git基本操作和GitHub_第6张图片
注意:可以通过以下命令将已追踪的文件从暂存区中删除(该文件将会变成未追踪,不会有日志记录),而在工作区的该文件不会删除。

git rm --cached 文件名

5、将暂存区的文件提交到本地库

基本语法:

git commit -m "日志信息" 文件名 

Git学习笔记 - Git基本操作和GitHub_第7张图片

6、历史版本

查看版本信息记录

基本语法:

git reflog


查看版本详细信息

基本语法:

git log

Git学习笔记 - Git基本操作和GitHub_第8张图片

7、修改并提交文件

(1)修改工作区的文件内容。
Git学习笔记 - Git基本操作和GitHub_第9张图片

(2)将修改的文件再次添加暂存区并提交本地仓库。git 是按照行来维护文件的,在文件中修改一行,实际上是先删除原来的那一行,再新增一行。
Git学习笔记 - Git基本操作和GitHub_第10张图片
(3)查看版本信息。

Git学习笔记 - Git基本操作和GitHub_第11张图片

8、 版本穿梭

Git 切换版本,底层其实是移动的HEAD 指针。

Git学习笔记 - Git基本操作和GitHub_第12张图片

切换版本:

Git学习笔记 - Git基本操作和GitHub_第13张图片

基本语法:

git reset --hard 版本号 

当版本6f4b4b0切换到版本d3652fb时,查看工作区的文件,其文件内容会变成版本d3652fb下的。

Git学习笔记 - Git基本操作和GitHub_第14张图片

通过.git文件下的HEAD文件来查看当前分支。然后通过HEAD的内容,也就是.git文件中refs/heads目录下的master查看当前版本号。
在这里插入图片描述
在这里插入图片描述

三、Git分支


分支:在版本控制过程中,同时推进多个任务,每个任务可以创建每个任务的单独分支,一个分支代表一条独立的开发线。使用分支意味着可以从开发主线上分离开来,然后在不影响主线的同时继续工作。分支可以简单理解为副本,一个分支就是一个单独的副本。

分支底层是指针的引用,比如有master、hot-fix 两个分支,master、hot-fix 其实都是指向具体版本记录的指针。当前所在的分支,其实是由 HEAD 决定的。所以创建分支的本质就是多创建一个指针。HEAD 如果指向master,那么当前分支现在就在master 分支上。 HEAD 如果指向hot-fix,那么当前分支现在就在hotfix 分支上。

1、查看分支

基本语法:

git branch -v

在这里插入图片描述

2、创建分支

基本语法

git branch 分支名 

Git学习笔记 - Git基本操作和GitHub_第15张图片

3、修改分支

修改分支的文件内容,并添加到暂存区提交到本地库。

Git学习笔记 - Git基本操作和GitHub_第16张图片

4、切换分支

基本语法

git checkout 分支名 

master切换到hot-fix分支,文件中显示的是不是master中修改之后的文件内容,而是在hot-fix分支下的文件内容。
Git学习笔记 - Git基本操作和GitHub_第17张图片

通过.git文件下的HEAD文件来查看当前分支。然后通过HEAD的内容,也就是.git文件中refs/heads目录下的hot-fix查看当前版本号。


在这里插入图片描述

5、合并分支

基本语法:

在当前分支上合并其它分支

git merge 分支名

例:在master 分支上合并hot-fix 分支

Git学习笔记 - Git基本操作和GitHub_第18张图片

(1)切换到hot-fix分支,修改文件内容,添加到暂存区,提交本地库。
Git学习笔记 - Git基本操作和GitHub_第19张图片

(2)在master分支上合并hot-fix分支。
Git学习笔记 - Git基本操作和GitHub_第20张图片
(3)分支合并后文件的内容。
Git学习笔记 - Git基本操作和GitHub_第21张图片

6、合并分支产生冲突

产生冲突原因:合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替我们决定使用哪一个,必须人为决定新代码内容。

(1)修改master分支上的文件内容。
Git学习笔记 - Git基本操作和GitHub_第22张图片
Git学习笔记 - Git基本操作和GitHub_第23张图片

(2)修改hot-fix分支上的文件内容。

Git学习笔记 - Git基本操作和GitHub_第24张图片
Git学习笔记 - Git基本操作和GitHub_第25张图片
(3)在master上合并hot-fix分支,合并时出现冲突,需要修改冲突文件的内容,再添加暂存区并提交到本地库。

Git学习笔记 - Git基本操作和GitHub_第26张图片
编辑有冲突的文件,删除特殊符号,决定要使用的内容。

特殊符号:

<<<<<<< HEAD 
当前分支的代码 
=======  
合并过来的代码  
>>>>>>> hot-fix 

Git学习笔记 - Git基本操作和GitHub_第27张图片
Git学习笔记 - Git基本操作和GitHub_第28张图片
Git学习笔记 - Git基本操作和GitHub_第29张图片
Git学习笔记 - Git基本操作和GitHub_第30张图片

四、GitHub操作

1、创建远程库

GitHub 网址:https://github.com/

Git学习笔记 - Git基本操作和GitHub_第31张图片

Git学习笔记 - Git基本操作和GitHub_第32张图片

Git学习笔记 - Git基本操作和GitHub_第33张图片

Git学习笔记 - Git基本操作和GitHub_第34张图片

2、创建远程仓库别名

基本语法:

git remote -v 查看当前所有远程地址别名 
git remote add 别名 远程地址 

Git学习笔记 - Git基本操作和GitHub_第35张图片

3、推送本地分支到远程仓库

基本语法:

git push 远程地址别名/远程地址链接 本地分支

当第一次进行推送操作时,会弹出一个窗口让你的GitHub账户进行授权,授权成功后才能进行推送远程仓库git-demo中。当推送执行成功后进入GitHub,可以发现master 分支上的内容已经推送到远程仓库。
Git学习笔记 - Git基本操作和GitHub_第36张图片

Git学习笔记 - Git基本操作和GitHub_第37张图片

Git学习笔记 - Git基本操作和GitHub_第38张图片

Git学习笔记 - Git基本操作和GitHub_第39张图片

Git学习笔记 - Git基本操作和GitHub_第40张图片

Git学习笔记 - Git基本操作和GitHub_第41张图片

4、拉取远程库内容

基本语法:

git pull 远程地址别名/远程地址链接 远程分支名 

(1)在远程仓库对hello.txt进行修改。

Git学习笔记 - Git基本操作和GitHub_第42张图片

(2)拉取远程库内容到本地仓库。
Git学习笔记 - Git基本操作和GitHub_第43张图片
在这里插入图片描述

(3)查看本地仓库的hello.txt。

Git学习笔记 - Git基本操作和GitHub_第44张图片

5、克隆远程仓库到本地

基本语法:

git clone 远程地址

(1)新建一个文件夹git-demo2,进行该文件夹,右键选择Git Bash。
Git学习笔记 - Git基本操作和GitHub_第45张图片

(2)通过远程地址克隆远程仓库到本地(公开类型的远程仓库克隆时不用GitHub账号和密码,可以直接克隆到本地)。
Git学习笔记 - Git基本操作和GitHub_第46张图片

Git学习笔记 - Git基本操作和GitHub_第47张图片

克隆会做如下操作:1、拉取代码;2、初始化本地仓库;3、自动创建远程地址的别名(别名为origin)。

Git学习笔记 - Git基本操作和GitHub_第48张图片

在这里插入图片描述

五、团队协作

1、团队内协作


Git学习笔记 - Git基本操作和GitHub_第49张图片

1、邀请合作者加入团队。

Git学习笔记 - Git基本操作和GitHub_第50张图片

2、输入合作者的GitHub账号或者GitHub名称。

Git学习笔记 - Git基本操作和GitHub_第51张图片

3、选择合作者的GitHub账号。

Git学习笔记 - Git基本操作和GitHub_第52张图片

4、点击将合作者添加到该仓库。

Git学习笔记 - Git基本操作和GitHub_第53张图片

5、复制地址,通过qq或者微信发送给对方。

Git学习笔记 - Git基本操作和GitHub_第54张图片

6、合作者登录GitHub账号后,再访问该地址,点击同意加入该仓库。

Git学习笔记 - Git基本操作和GitHub_第55张图片

7、合作者点击个人头像,点击Your organizations,即可看到该仓库。

Git学习笔记 - Git基本操作和GitHub_第56张图片

Git学习笔记 - Git基本操作和GitHub_第57张图片

8、当合作者加入该仓库后,就可以对该仓库的文件进行修改。

Git学习笔记 - Git基本操作和GitHub_第58张图片
Git学习笔记 - Git基本操作和GitHub_第59张图片

9、如果合作者不再进行合作后,可以从该仓库中移除。
Git学习笔记 - Git基本操作和GitHub_第60张图片
Git学习笔记 - Git基本操作和GitHub_第61张图片

2、跨团队协作


Git学习笔记 - Git基本操作和GitHub_第62张图片

1、跨团队协作人搜索该仓库。

Git学习笔记 - Git基本操作和GitHub_第63张图片

2、跨团队协作人点击Fork将该仓库叉到其远程仓库中。
Git学习笔记 - Git基本操作和GitHub_第64张图片

Git学习笔记 - Git基本操作和GitHub_第65张图片

3、创建成功后,跨团队协作人可以在其远程仓库中看到该仓库。

Git学习笔记 - Git基本操作和GitHub_第66张图片

4、跨团队协作人修改仓库的文件。

Git学习笔记 - Git基本操作和GitHub_第67张图片

Git学习笔记 - Git基本操作和GitHub_第68张图片

5、跨团队协作人创建一个合并请求。

Git学习笔记 - Git基本操作和GitHub_第69张图片
Git学习笔记 - Git基本操作和GitHub_第70张图片

6、仓库管理员找到跨团队协作人发送的合并请求,仓库管理员先审核一遍代码,没有问题的话,再点击确认合并按钮。

Git学习笔记 - Git基本操作和GitHub_第71张图片
Git学习笔记 - Git基本操作和GitHub_第72张图片
Git学习笔记 - Git基本操作和GitHub_第73张图片

7、合并请求成功合并后,在管理员的仓库文件中出现了跨团队协作人写的代码。
Git学习笔记 - Git基本操作和GitHub_第74张图片

六、SSH免密登录


在GitHUb远程仓库中还有一个 SSH 地址,可以使用 SSH 进行免密登录操作。在使用SSH地址进行操作前,要先使用命令在本地电脑生成ssh公有秘钥和私有秘钥,然后使用公有秘钥在GitHub账号中生成一个SSH keys。

Git学习笔记 - Git基本操作和GitHub_第75张图片

1、找到本地电脑的home目录。

Git学习笔记 - Git基本操作和GitHub_第76张图片

2、使用命令生成ssh公有秘钥和私有秘钥。

Git学习笔记 - Git基本操作和GitHub_第77张图片

生成ssh秘钥命令

ssh-keygen -t rsa -C 账号邮箱

	ssh-keygen:生成ssh免密登录的私有密钥和公有密钥的命令。
	-t:密钥的类型,指定哪种算法生成。
	rsa:非对称加密协议。
	-C:用于识别这个密钥的注释。

Git学习笔记 - Git基本操作和GitHub_第78张图片

Git学习笔记 - Git基本操作和GitHub_第79张图片

Git学习笔记 - Git基本操作和GitHub_第80张图片

Git学习笔记 - Git基本操作和GitHub_第81张图片

3、复制公有秘钥id_rsa.pub 文件内容,登录GitHub,点击用户头像,点击Setting,点击SSH and GPG keys。
Git学习笔记 - Git基本操作和GitHub_第82张图片

Git学习笔记 - Git基本操作和GitHub_第83张图片

4、点击添加SSH Key。

Git学习笔记 - Git基本操作和GitHub_第84张图片

5、输入SSH Key的名称和公有秘钥的文件内容,点击生成一个SSH Key。

Git学习笔记 - Git基本操作和GitHub_第85张图片

Git学习笔记 - Git基本操作和GitHub_第86张图片

6、接下来再往远程仓库push或者从远程仓库中pull文件时,使用SSH 连接就不需要登录了。

Git学习笔记 - Git基本操作和GitHub_第87张图片

你可能感兴趣的:(笔记,git,git,github,学习)