涨薪技术|持续集成Git使用详解

Git介绍

Git 是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。

Git 的特点:

  • 分支更快、更容易。

  • 支持离线工作;本地提交可以稍后提交到服务器上。

  • Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的。

  • Git 中的每个工作树都包含一个具有完整项目历史的仓库。

  • 没有哪一个 Git 仓库会天生比其他仓库更重要。

01Git安装与配置

1)Windows上安装Git

复制代码
下载地址:https://git-scm.com/download/win最新版本为:Git-2.27.0-64-bit.exe安装步骤:1.双击 Git-2.27.0-64-bit.exe 开始安装;2.一直点击next,直到出现install,点击install,安装完成后点击finish;3.检查git是否安装OKcmd -> git --versionC:\Users\Foreknew>git --versiongit version 2.27.0.windows.1

2)Git配置

由于git是分布式管理工具,需要输入用户名和邮箱以作为标识,因此,在命令行输入下列的命令

注意:git config --global参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱,根据个人情况设置。

02Git基本用法

1、Git工作流程

2、Git命令

2.1)分支操作​​​​​​​
复制代码
1. git branch 创建分支2. git checkout -b 创建并切换到新建的分支上3. git checkout 切换分支4. git branch 查看分支列表5. git branch -v 查看所有分支的最后一次操作6. git branch -vv 查看当前分支7. git brabch -b 分支名 origin/分支名 创建远程分支到本地8. git branch --merged 查看别的分支和当前分支合并过的分支9. git branch --no-merged 查看未与当前分支合并的分支10. git branch -d 分支名 删除本地分支11. git branch -D 分支名 强行删除分支12. git branch origin :分支名 删除远处仓库分支13. git merge 分支名 合并分支到当前分支上
2.2)暂存操作​​​​​​​
复制代码
1. git stash 暂存当前修改2. git stash apply 恢复最近的一次暂存3. git stash pop 恢复暂存并删除暂存记录4. git stash list 查看暂存列表5. git stash drop 暂存名(例:stash@{0}) 移除某次暂存6. git stash clear 清除暂存
2.3)回退操作​​​​​​​
复制代码
1. git reset --hard HEAD^ 回退到上一个版本2. git reset --hard ahdhs1(commit_id) 回退到某个版本3. git checkout -- file撤销修改的文件(如果文件加入到了暂存区,则回退到暂存区的,如果文件加入到了版本库,则还原至加入版本库之后的状态)4. git reset HEAD file 撤回暂存区的文件修改到工作区
2.4)标签操作​​​​​​​
复制代码
1. git tag 标签名 添加标签(默认对当前版本)2. git tag 标签名 commit_id 对某一提交记录打标签3. git tag -a 标签名 -m '描述' 创建新标签并增加备注4. git tag 列出所有标签列表5. git show 标签名 查看标签信息6. git tag -d 标签名 删除本地标签7. git push origin 标签名 推送标签到远程仓库8. git push origin --tags 推送所有标签到远程仓库9. git push origin :refs/tags/标签名 从远程仓库中删除标签
2.5)其他常规操作​​​​​​​
复制代码
1. git push origin test 推送本地分支到远程仓库2. git rm -r --cached 文件/文件夹名字 取消文件被版本控制3. git reflog 获取执行过的命令4. git log --graph 查看分支合并图5. git merge --no-ff -m '合并描述' 分支名 不使用Fast forward方式合并,采用这种方式合并可以看到合并记录6. git check-ignore -v 文件名 查看忽略规则7. git add -f 文件名 强制将文件提交
2.6)git创建项目仓库​​​​​​​
复制代码
1、git init 初始化2、git remote add origin url 关联远程仓库3、git pull4、git fetch 获取远程仓库中所有的分支到本地
2.7)忽略已加入到版本库中的文件​​​​​​​
复制代码
1、git update-index --assume-unchanged file 忽略单个文件2、git rm -r --cached 文件/文件夹名字 (. 忽略全部文件)
2.8)取消忽略文件
复制代码
git update-index --no-assume-unchanged file
2.9)拉取、上传免密码
复制代码
git config --global credential.helper store

03Git基本操作

1、创建版本库

版本库就是我们所说的"仓库",英文名repository,你可以理解为一个目录,这个目录里面的所有文件都可以被Git管理,文件的修改,删除Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件"还原"。

下面在D:下创建了一个git 的版本库:

2、添加文件到版本库

要添加文件到版本库,首先需要将这个目录变为git可以管理的仓库,命令如下:

在git目录下创建一个test.txt文件:

git add:将文件提交到暂存区

git commit -m:将暂存区文件提交到仓库(单引号内为注释)

3、检查是否有未提交的文件

通过下面的命令,检查该版本库是否有文件未提交:​​​​​​​

复制代码
Foreknew@ForeknewPC MINGW64 /d/git (master)$ git statusOn branch masternothing to commit, working tree cleanForeknew@ForeknewPC MINGW64 /d/git (master)

4、检查文件是否被修改

修改test.txt,然后重新检查状态:​​​​​​​

复制代码
Foreknew@ForeknewPC MINGW64 /d/git (master)$ git statusOn branch masterChanges not staged for commit:(use "git add <file>..." to update what will becommitted)(use "git restore <file>..." to discard changes inworking directory)modified: test.txtno changes added to commit (use "git add" and/or"git commit -a")Foreknew@ForeknewPC MINGW64 /d/git (master)$ git diff test.txtdiff --git a/test.txt b/test.txtindex 59eb105..5d4ae7d 100644--- a/test.txt+++ b/test.txt@@ -1,3 +1,5 @@11111111111111112222222222222222-3333333333333333\ No newline at end of file+3333333333333333+4444444444444444+5555555555555555\ No newline at end of fileForeknew@ForeknewPC MINGW64 /d/git (master)

git diff:查看文件修改的内容

5、查看历史变更记录​​​​​​​

复制代码
Foreknew@ForeknewPC MINGW64 /d/git (master)$ git add test.txtForeknew@ForeknewPC MINGW64 /d/git (master)$ git commit -m 'fixed 2'[master 41ad1bb] fixed 21 file changed, 3 insertions(+), 1 deletion(-)Foreknew@ForeknewPC MINGW64 /d/git (master)$ git logcommit 41ad1bba8cdc8b528f3e3182e7d84e1146220f05(HEAD -> master)Author: admin <[email protected]>Date: Sat Jun 27 14:25:31 2020 +0800fixed 2commit dcfca195de64c268af6aa6c281f4e32dfa537ee6Author: admin <[email protected]>Date: Sat Jun 27 14:16:03 2020 +0800test.txt file commit 2020-06-27Foreknew@ForeknewPC MINGW64 /d/git (master)$

git log:获得历史修改记录

git log --pretty=oneline:使记录只显示主要的内容,一行显示

6、回退版本​​​​​​​

复制代码
git reset --hard HEAD^:回退到上一个版本git reflog:获取历史版本号git reset --hard 版本号:回退到该版本号对应的版本PS:如果要回退到上上个版本,可以使用git reset --hard HEAD^^命令,但是这样稍显麻烦,如果回退到100个版本之前,只需要执行这个命令即可:git reset --hard HEAD~100;

7、将本地文件推送到github仓库

检查文件是否还有未提交或者修改的,然后将文件提交到github仓库,命令如下:

8、克隆GitHub远程仓库

相关推荐
狗蛋不是狗5 分钟前
Python 实现的运筹优化系统代码详解(0-1规划背包问题)
python·数学建模·背包问题·0-1规划·狗蛋不是狗
zru_960212 分钟前
Vue 常用组件介绍博客
前端·javascript·vue.js
字节旅行者21 分钟前
C++中如何使用STL中的list定义一个双向链表,并且实现增、删、改、查操作
开发语言·数据结构·c++·链表
搞程序的心海24 分钟前
用Scala玩转Flink:从零构建实时处理系统
开发语言·flink·scala
写代码的小王吧27 分钟前
【网络安全】 防火墙技术
java·python·安全·web安全·网络安全·docker
x66ccff32 分钟前
[特殊字符] Pandas 常用操作对比:Python 运算符 vs Pandas 函数
开发语言·python·pandas
ConardLi1 小时前
MCP + 数据库,一种比 RAG 检索效果更好的新方式!
javascript·数据库·人工智能
小白的高手之路1 小时前
torch.nn中的非线性激活介绍合集——Pytorch中的非线性激活
人工智能·pytorch·python·深度学习·神经网络·机器学习·cnn
逆风优雅1 小时前
python 爬取网站图片的小demo
开发语言·python
码界筑梦坊1 小时前
基于Pyhon的京东笔记本电脑数据可视化分析系统
python·信息可视化·数据分析·毕业设计·电脑·销量预测