学习内容来自 尚硅谷 Git全套教程,git技术大全(GitHub、Gitee码云、GitLab)
目录
1.Git介绍:
分布式版本控制工具,快速高效处理各种项目。具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。
何为版本控制:版本控制是一种记录文件内容变化,一边查阅特定版本修订情况的系统,版本控制最重要的是可以记录文件修改历史记录,从而让用户可以查看历史版本,方便版本切换。
为什么需要版本控制:从个人开发过渡到团队协作。
版本控制工具:集中式版本控制工具(SVN等)、分布式版本控制工具(Git等)。
Git工作机制:

工作区的代码添加到暂存区临时存储,在暂存区和工作区的代码都可以删除不留记录。暂存区的代码提交到本地库后生成历史版本不能删除了。本地库还可以推送(push)到远程库。
代码托管中心:基于网络服务器的远程代码仓库,一般称为远程库。局域网:Gitlab;互联网:Github、Gitee码云。
2.Git常用命令

命令名称与作用:
- git config --global user.name 用户名 设置用户签名
- git config --global user.email 设置用户签名
- git init 初始化本地库
- git status 查看本地库状态
- git add 文件名 添加到暂存区
- git commit -m"日志信息" 文件名 提交到本地库
- git reflog 查看历史记录
- git reset --hard 版本号 版本穿梭
案例:
- 初始化本地库
![]()
- 查看本地库状态


- 添加到暂存区 hello.txt 变绿


删除暂存区中的hello.txt //工作区中不变
![]()
- 提交本地库 //1de6c6f为版本号前7位


- 查看历史信息 // git log 命令查看更详细
![]()

修改文件后status提示文件被修改过 //红色代表未追踪到暂存区




指针指向新版本

- 穿梭回第二个版本 //在.git文件夹中HEAD文件中显示指针指向master分支,在refs/heads/master中显示版本号
![]()

穿梭不同版本,工作区中hello.txt文件也相应改变
3.Git分支操作
什么是分支:在版本控制过程中,需要同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本。一个分支就是一个单独的副本。(分支底层其实也是指针的引用)
同时并行推进多个功能开发,提高开发效率。
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
分支的操作
- git branch 分支名 创建分支
- git branch -v 查看分支
- git checkout 切换分支
- git merge 把指定的分支合并到当前分支上
案例:
- 查看当前分支 //master分支
![]()
- 创建分支
![]()

- 修改和切换
![]()
![]()

![]()


- 合并分支
![]()

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

自动合并失败 //分支处显示合并中merging
![]()

打开文件显示冲突位置

手动合并,vim修改文件,将符号(<<<<<HEAD、=====、>>>>>hot-fix)也删掉

人为修改后的文件还要再次添加暂存区、提交本地库(这次提交本地库时不加文件名)
//分支上的merging也没了
![]()
被合并的分支文件不变

4.Git团队协作机制
团队内协作:

跨团队协作:

fork复制 Pull request发起请求
5.Github操作
Github 网址:https://github.com
右上角加号中New repository创建远程库



远程仓库操作:
- git remote -v 查看当前所有远程地址别名
- git remote add 别名 远程地址 起别名
- git push 别名 分支 推送本地分支上的内容到远程仓库
- git clone 远程地址 将远程仓库的内容克隆到本地
- git pull 远程库地址别名 远程分支名 当前本地分支直接合并
案例:
远程库链接https://github.com/Chen-coder61/git-demo.git太长,起个别名后续推送到远程库更方便,别名最好和库名一致。
![]()
(fetch取,push推)

- 本地库代码推送到远程库
(报错如下的话输入git config --global http.sslVerify false再次推送)

成功的话弹出Connect to GitHub

点击sign in with your browser

点击anthorize git-ecosystem 输入密码

点击confirm确认,身份验证成功,git bash内自动推送


刷新github,推送成功

修改远程库内容

- 从远程库中修改后的内容拉取到本地

拉取后本地库和远程库内容就一致了,git status一下发现无需再提交远程库,cat 文件可以看到修改的内容一致。
- 克隆远程仓库到本地

可以看到本地库已经有克隆的远程库中的项目了
clone会拉取代码、初始化本地仓库、创建别名(默认origin)


(克隆不需要登录账号)
9627

被折叠的 条评论
为什么被折叠?



