枕上从妨一夜睡,灯前读尽十年诗。这篇文章主要讲述Git 程序员必备技能相关的知识,希望能为你提供帮助。
文章目录
- ??一丶Git 是什么???
- ??二丶Git 环境??
- ??2.1、下载 git??
- ??2.2、Git 用户配置??
- ??2.3、ssh公钥??
- ??三丶Git 命令??
- ??四丶Git工作原理??
- ??五丶Git 分支管理(高级特性)??
- ??5.1、Git 分支概念??
- ??5.2、Git 分支命令??
- ??5.3、实例讲解??
二丶Git 环境 2.1、下载 git
?
?add-apt-repository ppa:git-core/ppa?
??
?apt-get update?
??
?apt-get install git?
?2.2、Git 用户配置
(1)查看用户和邮箱(未配置则为空)
?
?git config user.name?
??
?git config user.email?
?(2)配置/修改用户名和邮箱
?
?git config --global user.name "username"?
??
?git config --global user.email "email"?
?2.3、ssh公钥
【Git 程序员必备技能】(1)检查ssh公钥(未配置则无路径)
?
?cd ~/.ssh?
??
?cat ~/.ssh/id_rsa.pub?
?(2)生成公钥
先配置用户及邮箱再生成
?
?ssh-keygen -t rsa?
?(3)SSH 公钥使用
将整段字符串copy添加到gitlab中。
三丶Git 命令git 基本命令
- 查看 Git版本:?
?git --version?
? - 初始化仓库:?
?git init?
? - 下载远程仓库:?
?git clone < url> ?
? - 添加文件到暂存区:?
? git add?
? - 查看仓库当前的状态,显示有变更的文件:?
?git status?
? - 比较文件的不同,即暂存区和工作区的差异:?
? git diff?
? - 提交暂存区到本地仓库:?
? git commit?
? - 回退版本:?
? git reset?
? - 删除工作区文件:?
? git rm?
? - 移动或重命名工作区文件:?
? git mv?
? - 查看历史提交记录:?
? git log?
? - 以列表形式查看指定文件的历史修改记录:?
? git blame < file> ?
? - 远程仓库操作:?
? git remote?
? - 从远程获取代码库:?
? git fetch?
? - 下载远程代码并合并:?
? git pull?
? - 上传远程代码并合并:?
? git push?
? - 还原工作区文件修改:?
? git checkout .?
? (.代表所有文件,可指定文件路径) - 还原工作区文件添加:?
?git clean -rf?
? (-rf代表全部清除,-f xxx 代表指定文件路径。也可直接rm文件) - 隐藏合并提交:?
?--no-merges ?
? - 指定日期:?
?--since、--before、--until 、 --after?
?? 例: ??git log --oneline --before=3.weeks.ago --after=2010-04-18?
? 代表三周前且在四月十八日之后的所有提交
- 尚未缓存的改动:?
?git diff ?
? - 查看已缓存的改动 :?
?git diff --cached ?
? - 查看已缓存的与未缓存的所有改动:?
?git diff HEAD ?
? - 显示未缓存改动的摘要(路径):?
?git diff --stat ?
?
- 清除工作区中未添加到暂存区中的改动:?
?git checkout . ?
?? 或?? git checkout< file> ?
? - 用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件,不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动:?
?git checkout HEAD .?
?? 或??git checkout HEAD < file> ?
? - ?
?git checkout -b AA origin/BB?
? 切换到远程分支BB并在本地生成与之关联的AA分支。为了便于区分,远程分支和本地分支名称通常保持一致。使用次命令前先确认能否查询到远程分支,否则需要git pull -r 同步一下
- 提交暂存区的文件:?
?git commit -m ?
? - 提交文件到暂存区+提交暂存区的文件:?
?git commit -am?
?
- ?
?git push < 远程主机名> < 本地分支名> :< 远程分支名> ?
?
如果本地分支名与远程分支名相同,则可以省略冒号:
??git push < 远程主机名> < 本地分支名> ?
?
- 将本地的 master 分支推送到 origin 主机的 master 分支:?
?git push origin master?
? 相当于 ??git push origin master:master?
? - 忽略本地版本与远程版本有差异,强制推送:?
?git push --force origin master?
? - 删除主机的master 分支:?
?git push origin --delete master?
?
- 查看历史提交记录:?
?git log?
? - 查看历史提交记录(简洁版):?
?git log --oneline?
? - 逆向显示所有日志:?
?git log --reverse --oneline?
? - 查看指定分支节点:?
?git log xxx?
? - 指定作者节点:?
?git log --author=xxx?
? - 检索信息节点:?
?git log --grep=xxx?
? - 列举修改文件:?
?git log --name-status?
? - 列举修改文件:?
?git whatchanged(可指定开始节点)?
? - 列举2个节点修改文件:?
?git whatchanged -n 2(可指定开始节点)?
? - 查看节点修改内容:?
?git show xxx?
? - 对比两个节点内容:?
?git diff AAA BBB?
?
五丶Git 分支管理(高级特性) 5.1、Git 分支概念
几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。在很多版本控制系统中,这是一个略微低效的过程——常常需要完全创建一个源代码目录的副本。对于大项目来说,这样的过程会耗费很多时间。
有人把 Git 的分支模型称为它的“必杀技特性”,也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出。 为何 Git 的分支模型如此出众呢? Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。 与许多其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。 理解和精通这一特性,你便会意识到 Git 是如此的强大而又独特,并且从此真正改变你的开发方式。
5.2、Git 分支命令
注意:本地至少会有一个 master分支,它是在我们 git init 后被默认创建出来的。
- 创建分支:?
?git branch (branchname)?
? - 切换分支:?
?git checkout (branchname)?
? - 创建新分支并立即切换到该分支下:?
?git checkout -b (branchname)?
? - 合并分支:?
?git merge ?
? - 删除分支:?
?git branch -d (branchname)?
? - 查看本地分支:?
?git branch ?
? - 查看远程分支:?
?git branch -r?
? - ?
?git branch --set-upstream-to=origin/AA?
? 本地创建的分支第一次push代码时会提示分支未关联,使用次命令是将本地当前分支关联到远程分支AA上。
??实例讲解??
推荐阅读
- CentOS 7 下 Yum 安装 MySQL 5.7
- 数据结构-二叉树
- 一个好主板对CPU超频的现实意义————一次超频经历(z390ws华硕工作站主板+i7-9700k CPU ,Ubuntu18.04.5系统
- 六石编程学(比垃圾软件更差更可怕的致命软件剧毒软件)
- win10关闭自动更新服务
- Kubernetes安装Metrics数据采集插件
- Jenkins流水线整合钉钉
- Jenkins的流水线(Pipeline)
- Jenkins入门配置