git简介
- git有一个版本控制系统,可以看到有谁在哪个时间上修改了哪些文件。
- 缺点,如果中央服务器出现故障了,或者网络连接出现了问题,那么所有人都无法工作了。
git命令
- git所有的命令都以git开头,后面跟着具体的命令
- 可以把仓库理解为一个目录,目录里面所有的文件都可以被git管理,git可以追踪到任何一个文件的增删改的版本。
git仓库的创建
- 找到一个合适的位置创建一个空目录
方式2:在github上远程克隆一个仓库
get clone https://github.com/geekhall-laoyang/remote-repo.git
git 工作区域和文件状态
- 自己电脑上的目录,可以直接看到
- 临时存储区域。用来保存即将上传的内容
- 给git init 包含了完整的项目历史和元数据,是git存储代码和版本信息的主要位置
总之就是在工作区修改完文件之后,先暂时保存在暂存区,然后统一交给本体仓库完成提交操作。
- Untrack,已经创建但是未被git管理的文件
- Unmodified:已经被管理的,但是文件的内容还没有发生变化
- Modified:已经修改但是还没添加到暂存区
git status可以获取仓库的状态。
git commit:将文件提交到仓库中。提交到仓库中,才算真正的保存起来。注意,这个命令只会提交
用
- m来指定要提交的信息,如果不指定就会进入一个vim的交互式页面
查看仓库状态,file1已经被提交走了。还剩下file2
git add*.文件后缀通配符的使用
git add.把当前文件夹下的所有文件都添加到暂存区里面git log查看提交的历史记录
来查看简洁的提交记录
-
git reset,mixed是默认的参数提交一次就是一个版本
-
ls查看一下工作区的内容
先创建,再添加,最后提交 这时候再进行版本回退操作。
- 把仓库目录复制三份,分别执行三种不同的参数
-
回退的版本
(HEAD ->main)也指向了第二个版本。 -
谨慎使用hard命令
-
git reflog可以查看一下我们操作的历史记录。
git diff:
- 什么也不加,默认比较的是工作区和暂存区之间的差异内容
----------------插入vim的简单使用方法-------------------
- 100644表示文件的权限
git diff HEAD其中HEAD指向分支的最新提交节点git diff -cached比较暂存区和版本库之间的差异git diff +两个版本提交的idgit diff HEAD~ HEAD比较当前版本和上一个版本的快捷方式git diff HEAD~ HEAD file3.txt只会显示file3,txt的差异内容
删除文件rm:rm是linux操作系统的命令
rm file2.txt删除文件file2.txt
这里只是删除了工作区里面的文件,需要添加,然后删除掉暂存区里面的文件
git rm file5.txt
最后要记得提交
.gitignore
- 这样会让我们的仓库更加简洁,不会纳入一些不必要的文件。
-比如:
- .gitignore文件生效有一个前提,就是这个文件不能是已经被添加到版本库中的文件
vi .gitignore修改要添加的文件名称时候,文件夹是以/结尾的,比如temp/
- .gitignore文件的匹配规则
- 此外,github上面有模板,有需要的直接拿来用或者根据自己的需要进行修改
github的账号的创建和第一个远程仓库的写入
-
点击绿色的按钮就可以新建一个仓库了
-
把本地的仓库和远程的仓库关联起来。
-
1.本地没有仓库的话,先在本地创建一个。
HTTP
- 推送的时候需要用户名和密码
SSH(推荐)
- 推送的时候不需要用户名和密码,但是需要在GitHub上添加SSH公钥的配置
- 克隆库,没有成功,因为没有配置SSH密钥
- 第一次生成SSH密钥直接摁回车就好了
-
公钥文件内容展示:
-
添加成功
-
把远程仓库克隆到本地
- 同步两个仓库
- 在已经有本地仓库的情况下,如何关联本地仓库和远程仓库
git remote add origin git@github.com:11shiqi/first-repo.git
git branch -M main
git push -u origin main
-
第二行的命令是指定分支的名称为main
-
将main分支和远程仓库相关联起来:
git push -u origin main:main -
也可以在远程仓库上直接修改文件
-
远程仓库已经修改了,这时候要把远程添加的内容同步到本地
git pull origin main
github以外的代码托管平台
Gitee
GitLab
Git的一些图形化工具和一些常见的IDE
vscode
- 在目录下打开code .就可以在vscode中打开当前目录。
分支
- 多个开发人员可以在自己的分支上进行开发工作,最后再合并到主线代码库当中。
- 或者在分支上进行新功能的开发
- 建立一个问题修复的分支来处理一些bug和缺陷,让主线代码仓库处于一个随时可用的比较稳定的状态,而不会影响到其它功能的开发和测试,保证了项目的高效运行和协作。
-
命名方式
-
默认分支
-
切换分支
git switch、
-
合并分支
-
注意,分支被合并后还是存在的。
-
删除分支
git branch -D 分支名称删除还没有合并的分支
- 分支的命名也是有一定的作用的。
git branch feature开发具有一定特色功能的分支。
- 使用
git diff命令来查看两个分支的不同的内容
- 回退和rebase