Git 程序员必备技能

Posted 51CTO王睿丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git 程序员必备技能相关的知识,希望对你有一定的参考价值。



文章目录

  • ​​一丶Git 是什么?​​
  • ​​二丶Git 环境​​
  • ​​2.1、下载 git​​
  • ​​2.2、Git 用户配置​​
  • ​​2.3、ssh公钥​​
  • ​​三丶Git 命令​​
  • ​​四丶Git工作原理​​
  • ​​五丶Git 分支管理(高级特性)​​
  • ​​5.1、Git 分支概念​​
  • ​​5.2、Git 分支命令​​
  • ​​5.3、实例讲解​​

一丶Git 是什么?

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

二丶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公钥

(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 ​
  • 查看已缓存的改动 :​​git diff --cached ​
  • 查看已缓存的与未缓存的所有改动:​​git diff HEAD ​
  • 显示未缓存改动的摘要(路径):​​git diff --stat ​

git checkout

  • 清除工作区中未添加到暂存区中的改动:​​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

  • 提交暂存区的文件:​​git commit -m ​
  • 提交文件到暂存区+提交暂存区的文件:​​git commit -am​

git push

  • ​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工作原理

Git

五丶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上。

5.3、实例讲解

​实例讲解​



以上是关于Git 程序员必备技能的主要内容,如果未能解决你的问题,请参考以下文章

Git算不算程序员的必备技能?

程序员必备技能-git 不会到还有人不会用吧,不会吧不会吧?

git常用操作命令(程序员必备技能)

必备技能-Git 使用规范流程

Java程序员必备技能内存管理机——垃圾标记

Git远程操作详解(新手必备)