什么是Git
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
工作流程
获取git仓库
git init:(未有仓库)初始化git仓库,并将当前项目的文件都添加到Git仓库中
git clone url:(已有仓库)从其他服务器clone一个已经存在的Git仓库
提交文件
当前项目的文件可以视为两种状态:未跟踪,已跟踪。即被git add .标记的文件,由未跟踪转为已跟踪,同时放入暂存区。
放入暂存区的文件状态称为staged
当文件被修改后,变为Modified状态,需要再次执行git add .,才能提交。(git add .实际上是提交所有文件的简写)git rm --cached filename可以把文件移除出暂存区(少用)
git commit -m "修改xx文件"当该命令被执行,可以将暂存区文件提交到Git仓库,此时文件状态称为Unmodified。
或者直接执行git commit -a -m "修改xx文件"相当于add,commit一起执行。
以上是日常使用Git提交拉取代码的基本命令。
查看文件状态
git status :可以查看文件状态
查看提交历史
git log:查看提交历史,可以看到每个提交的校验和,作者名和邮箱地址,提交时间和提交说明。
忽略文件
当使用git add .时,存在一些我们不想提交的文件,此时需要使用忽略文件。
可以创建一个名为.gitignore的文件,列出要忽略的文件的名称。一般不需要手动配置。
版本回退
git reset:可以回退到之前提交的某个版本
使用方法:git reset --hard 校验和id
或git reset --hard HEAD^
HEAD^表示上个版本,HEAD^^表示上上个版本,以此类推。
git通过HEAD指针记录当前版本。
远程仓库的验证
SSH密钥
Secure Shell(安全外壳协议)是一种加密的网络传输协议。可以以非对称加密实现身份验证。
可以以ssh -keygen -t ed25519 -C "email" 或ssh -keygen -t rsa -C "email" 生成密钥。
和远程仓库建立连接
git remote add 分支名 url
远程仓库相关操作
git push:上传远程代码并合并
git pull:下载远程代码并合并
git fetch:从远程获取代码库
git merge:从远端仓库提取数据并尝试合并到当前分支
git fetch和git pull的区别
git fetch 只是将远程仓库的变化下载下来,并没有和本地分支合并。而git pull 会下载变化以及与本地分支合并。