【效率为王】Git 使用指南

简介: Git 使用手册

简介

  1. 定义Git,最先进的分布式版本控制系统之一,最初是由Linux之父Linus为了更好管理开源Linux系统而开发的一个软件;
  2. 下载:https://npm.taobao.org/mirrors/git-for-windows/
  3. 安装
  • Linux:sudo apt-get install git
  • Windows、macOS通过官网下载安装包后进行安装即可;
  1. 设置
    安装完成后,设置署名和邮箱:

$ git config --global user.name "user name"

$ git config --global user.email "example@email.com"

# 可选,让Git命令行显示颜色

$ git config --global color.ui true


版本库创建及管理

  1. 如何创建版本库
  • 先创建一个空文件夹,Windows下不再介绍,Linux以及macOS下可通过$ mkdir gitlearn命令创建;
  • 通过$ git init将刚才创建的目录变为可管理的仓库;

  1. 如何将文件添加到版本库
  • 在刚才创建的空文件夹中,添加你自己的文件,以readme.md为例;
  • git add命令将文件添加到仓库;

 # 添加单一文件

 $ git add readme.md

 # 添加所有文件

 $ git add .

  • git commit将文件提交到仓库;

$ git commit -m"this is a readme.md file."

  1. 如何查看仓库修改的内容
  • git status查看仓库当前状态;
  • git diff filename查看文件具体修改的内容;

 $ git status

 $ gitdiff readme.txt

  • git log查看最近到最远的提交日志

 $ git log --pretty=oneline

  • 回退之前的版本,先用git log查看提交历史,以确定commit_id,回退后,当想要重返未来版本时,用git reflog查看命令历史,从而确定重返版本commit_id,HEAD指向当前版本,为了在版本的历史之间穿梭,使用命令git resrt --hard commit_id

 $ git reset --hard HEAD^

  • 直接丢弃工作区的某文件修改内容时,使用命令git checkout -- filename

 $ git checkout -- readme.md

  • 删除文件,先在工作区将文件删除后,然后使用命令git rm将版本库中文件删除,然后通过git commit提交

 $ gitrm readme.md

 $ git commit -m"delete readme.md"


远程仓库

  1. 本地Git和远程Github相连接,可以进行如下操作:
  • 确定.ssh目录下是否存在文件id_rsaid_rsa.pub,有则复制id_rsa.pub中内容明将其添加到Github中的SSH Key,建立两者联系,可以在本地管理,
  • 不存在则通过如下命令生成;

 $ ssh-keygen-t rsa -C"example@email.com"

  1. 如何添加远程仓库
  • 在本地通过如下命令建立本地仓库与远程仓库进行管理,然后就可以将本地仓库内容推送到Github仓库;

 $ git remote add origin git@github.com:cunyu1943/LeetCode.git

  • 从远程仓库克隆岛本地:

 $ git clone https://github.com/cunyu1943/LeetCode.git

  1. 将本地仓库内容推送到远程仓库;

# 第一次推送

$ git push -u origin master

# 之后的推送

$ git push origin master


分支管理

  1. 创建并切换分支

$ git switch -c dev

# 等价命令

$ git checkout -b dev

# 等价命令

$ git branch dev

$ git checkout dev

  1. 查看当前分支,前边标有*代表当前分支,切换回master分支;

$ git branch

$ git checkout/switch master

  1. dev分支合并到master分支;

$ git merge dev

  1. 删除分支;

$ git branch -d dev

  1. 强制删除未合并分支;

$ git branch -D dev

  1. 查看分支合并图

$ git log --graph


撤销变更

撤销变更由底层部分(暂存区的独立文件或片段)和上层部分(变更到底是通过哪种方式被撤销的)组成;

git reset

通过将分支记录回退几个提交记录来实现撤销改动,主要用于自己开发的本地分支,即 commit 的内容,对于远程分支是无效的;

# 回退到 HEAD 的父记录

git reset HEAD~1

git revert

当需要撤销变更并 分享 时,即撤销已经 push 的内容,需要使用 git revert

# 撤销 HEAD 的提交,相当于新提交一个记录,此记录状态和 HEAD 父记录相同

git revert HEAD


多人协作

  1. 查看远程库信息:git remote -v
  2. 本地新建分支若不推送到远程,则对其他人不可见;
  3. 本地推送到远程库,git push origin branch-name,若推送失败,则用git pull抓取远程新提交;

$ git push origin master

# 若推送失败,则先执行如下命令

$ git pull

  1. 本地创建和远程分支对应分支,git checkout -b branch-name origin/branch-name

$ git checkout -b dev origin/dev

  1. 建立本地分支和远程分支的关联,git branch --set-upstream branch-name origin/branch-name

$ git branch --set-upstream dev origin/dev

  1. 从远程抓取分支则使用git pull,若有冲突,则先解决处理后再处理;

标签管理

  1. 切换到需要打标签的分支git switch branch-name
  2. 打标签并查看;

# 打一个名为"v1.0"的标签

$ git tag v1.0

# 查看所有标签

$ git tag

  1. 查看标签信息,git show <tagname>

$ git show v1.0

  1. 创建带有说明的标签,用-a打标签名,-m指定说明文字;

$ git tag -a v1.0 -m"version 1.0 released"

  1. 删除标签,本地使用git tag -d <tagname>,远程则使用git push origin :refs/tags/<tagname>

# 删除本地标签

$ git tag -d v30.0

# 删除远程标签

$ git push origin :refs/tags/v30.0

  1. 将标签推送到远程git push origin <tagname>

# 推送某一标签

$ git push origin v1.0

# 推送所有标签

$ git push origin --tags


建立Github和Gitee共同远程连接

  1. 删除某一关联的远程库,git remote rm <basename>

$ git remote rm origin

  1. 关联Gitee远程库,git remote add <basename> git@https://gitee.com/<username>/<respName>.git

$ git remote add gitee https://gitee.com/cunyu1943/LeetCode.git

  1. 关联Github远程库,git remote add <basename> https://github.com/<username>/<respName>.git

$ git remote add github https://github.com/cunyu1943/LeetCode.git

  1. 推送到Gitee和Github

# 推送到Gitee

$ git push gitee master

# 推送到Github

$ git push github master


相对引用

通过使用 相对引用,可以从一个易于记忆的地方开始计算;

  • 向上移动 1 个提交记录:^,将其加到引用名称的后边,表示让 Git 寻找指定提交记录的父记录,如 master^ 表示 master 的父节点;
  • 向上移动 N 个提交记录:~N

# 切换分支父节点

git checkout newBranch^

# 一次后退多步

git checkout newBranch~4

# 强制将 master 分支指向 HEAD 的第 3 级父提交

git branch -f master HEAD~3


移动提交记录

git cherry-pick

整理提交记录,命令形式如下:

git cherry-pick <提交号>...

# 将 b1、b2、b3 合并到 master

git checkout master

git cherry-pick b1 b2 b3

交互式 rebase

通过使用带参数 --interactiverebase 命令,简写为 -i,从而打开交互式 rebase

当打开交互式 rebase 时,可以进行的操作如下:

  • 调整提交记录的顺序(鼠标拖放);
  • 删除不想要的提交(通过切换 pick 的状态来完成);
  • 合并提交(将多个提交记录合并为一个);

其他小技巧

  1. 忽略特殊文件
    此时需要编写.gitignore文件,文件要放到版本库中,且可以对.gitignore进行版本管理;
  2. 配置命令别名

# 举例

$ git config --global alias status st

$ git config --global alias checkout co

$ git config --global alias commit cm


目录
相关文章
|
4月前
|
Shell Linux 开发工具
【Shell 命令集合 系统管理 】Linux 查看当前Git仓库的提交历史 gitps命令 使用指南
【Shell 命令集合 系统管理 】Linux 查看当前Git仓库的提交历史 gitps命令 使用指南
57 0
|
开发工具 git
Git的基本使用(上)
Git的基本使用
138 0
Git的基本使用(上)
|
Linux Shell 项目管理
Git使用前配置
本章节我们将详细了解与学习Git使用前配置
170 0
Git使用前配置
|
Linux 开发工具 git
14 Git 使用问题总结
问题分析 : could not lock config file %HOMEDRIVE%%HOMEPATH%/.gitconfig 的问题 在我的电脑上 HOME 的值是 %HOMEDRIVE%%HOMEPATH% 竟然不识别。已知 %homedrive% 指操作系统所在盘默认为C:,%HOMEPATH% 指的是用户所在目录,举例说明\Users\zhangsan。 所以手动改成 C:\Users\hp 即可。
384 0
14 Git 使用问题总结
|
Shell Linux 网络安全
Git 使用指南
Git是目前世界上最先进的分布式版本控制系统。在当前目录新建一个Git代码库,新建一个目录,将其初始化为Git代码库。
377 0
Git 使用指南
|
Shell 网络安全 开发工具
Git的一次使用流程
Git的一次使用流程
143 0
|
存储 前端开发 IDE
Git全栈开发者使用指南
Git全栈开发者使用指南
171 0
Git全栈开发者使用指南
|
存储 安全 Java
大牛总结的 Git 使用技巧,写得太好了!
前言 本文是参考廖雪峰老师的Git资料再加上我自己对Git的理解,记录我的Git学习历程,作下此文是为以后学习,工作,开发中如果遇到问题可以回过头来参考参考。因为水平有限,难免会有出错的地方,欢迎指正。
185 0
大牛总结的 Git 使用技巧,写得太好了!
|
存储 前端开发 IDE
Git全栈开发者使用指南
Git是一种分布式版本控制系统,由Linux之父Linus开发。本文详细介绍了Git的基本使用、常用命令整理、开发工具集成。
129 0
 Git全栈开发者使用指南
|
Java jenkins 测试技术