2021-07-04

2021/7/5 6:22:58

本文主要是介绍2021-07-04,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

GIT开发手册

  • GIT开发手册(2021 06 30)
    • 一、简介
    • 二、 特点
    • 三、 安装与配置
    • 四、 快速使用
      • <了解基础操作>
      • 1. 调出控制台界面
      • 2. 创建本地仓库
      • <了解工作流>
      • 1. 添加新文件到本地仓库
      • 2. 从本地仓库删除文件
      • 3. 在本地仓库修改文件
      • 4. 移动或重命名工作区文件
      • 5. 检测当前文件的状态
      • 6. 查看提交日志
      • 7. 查看操作日志
      • 8. 本地仓库回退
      • <了解分支>
      • 1. 查看当前分支
      • 2. 新建分支
      • 3. 重命名分支
      • 4. 切换分支
      • 5. 合并分支
      • 6. 删除分支
      • 7. 查看每一个分支的最后一次提交
      • <了解远程仓库>
      • 0. 获取远程仓库的url
      • 1. 检出仓库(下载远程仓库)
      • 2. 设置远程仓库
      • 3. 查看远程仓库
      • 4. 修改远程仓库名
      • 5. 删除远程仓库
      • 6. 更新本地仓库(从远程仓库获取更新)
      • 7. 推送远程仓库(将本地仓库推送到远程)
      • 8. 远程仓库回退
      • <了解IDEA>
      • 配置GIT
      • 在IDEA中使用git命令
      • 新建git项目
      • 检出项目(克隆)
      • 添加到缓存区(git add)
      • 提交到HEAD区(git commit)
      • 添加分支
      • 获取远程更新(git pull)
      • 推送到远程仓库 (git push)
      • <实用技巧>
        • 记住gitee账号密码
        • 设置用户名邮箱
        • 内建的图形化 git
        • 彩色的 git 输出
        • 显示历史记录时,每个提交的信息只显示一行:
        • 交互式添加文件到暂存区

GIT开发手册(2021 06 30)

一、简介

  1. Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

  2. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

  3. Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

二、 特点

  1. Git 是分布式的,SVN 不是**:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。**
  2. **Git 把内容按元数据方式存储,而 SVN 是按文件:**所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
  3. **Git 分支和 SVN 的分支不同:**分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
  4. **Git 没有一个全局的版本号,而 SVN 有:**目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
  5. **Git 的内容完整性要优于 SVN:**Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

三、 安装与配置

官网下载安装

四、 快速使用

<了解基础操作>

Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比。

本章将对有关创建与提交你的项目快照的命令作介绍。

Git 常用的是以下 6 个命令:git clonegit pushgit addgit commitgit checkoutgit pull,后面我们会详细介绍。

在这里插入图片描述

说明:

  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:版本库或本地仓库
  • remote repository:远程仓库

1. 调出控制台界面

第一种方式:

在随意一个文件夹中右键>Git Bash here

注意:需要有右键菜单的支持

第二种方式:

在安装目录下点击 git-bash.exe 启动

2. 创建本地仓库

第一种方式:

新建一个文件夹,然后在文件夹内,调出控制台页面输入

git init

会发现多出一个.git的文件夹

注意:需要打开隐藏文件夹的显示

第二种方式:

使用我们指定目录作为Git仓库。

git init 目录路径名

<了解工作流>

你的本地仓库由 git 维护的三棵“树”组成。第一个是你的 工作目录,它持有实际文件;第二个是 暂存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,它指向你最后一次提交的结果。

在这里插入图片描述

  • **工作区:**就是你在电脑里能看到的目录。
  • **暂存区:**英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • **版本库:**工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rPEaoYk2-1625412533599)(ipic/1352126739_7909.jpg)]
  • 图中左侧为工作区,右侧为版本库。在版本库中标记为 “index” 的区域是暂存区(stage/index),标记为 “master” 的是 master 分支所代表的目录树。
  • 图中我们可以看出此时 “HEAD” 实际是指向 master 分支的一个"游标"。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。
  • 图中的 objects 标识的区域为 Git 的对象库,实际位于 “.git/objects” 目录下,里面包含了创建的各种对象及内容。
  • 当对工作区修改(或新增)的文件执行 git add 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。
  • 当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。
  • 当执行 git reset HEAD 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
  • 当执行 **git rm --cached ** 命令时,会直接从暂存区删除文件,工作区则不做出改变。
  • 当执行 git checkout . 或者 **git checkout – ** 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区中的改动。
  • 当执行 git checkout HEAD . 或者 **git checkout HEAD ** 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。

1. 添加新文件到本地仓库

第一步

在本地仓库创建新文件(工作区新建文件)

touch 文件名

或者直接在文件夹中进行新建文件操作

第二步

使用add命令将文件添加到缓冲区(工作区添加到缓冲区)

单个文件添加方式:
git add 文件名
将工作区内的所有文件进行添加
git add *

第三步

使用commit命令将缓冲区的文件最终提交到本地仓库(缓冲区提交到HEAD区)

git commit -m "提交信息"

注意:如果您不使用-m,会出现编辑器来让你写自己的注释信息。

2. 从本地仓库删除文件

第一步

使用git命令进行删除

git rm <文件名>

注意:如果使用的是git命令,则已经在缓冲区中不用进行add添加

注意:如果删除的是文件夹则添加-r

第二步

将删除提交到HEAD区

git commit -m "提交信息"

3. 在本地仓库修改文件

在window进行编辑修改文件

add 和 commit

4. 移动或重命名工作区文件

git mv [file] [newfile]

5. 检测当前文件的状态

查看当前文件的状态,是否在工作区或缓冲区还是已经提交(经常使用)

 git status

注意:红色表示在工作区中未被提交的到暂存区

​ 绿色表示在暂存区中未被提交到HEAD区

注意:需要开启彩色的git输出(默认已经打开无需在意)

6. 查看提交日志

git log

注意:可以查看历史的版本记录

注意: 如果嫌弃输出的信息杂乱无章,那么加上 --pretty=oneline 参数试试吧!

7. 查看操作日志

git reflog

定义:查看命令操作的历史

8. 本地仓库回退

1、restore 重置
如果你修改了代码,但是并未执行 git add 操作,可直接执行:

git restore .
. 表示所有文件,如果想重置个别文件,指定文件路径即可
git restore <文件>...

注意:如果你已经执行了 git add 操作,此时代码已保存至暂存区,需要先取消暂存区变更:

git restore --staged .

或者

git reset . 
采用当前的版本仓库对暂存区进行覆盖

然后,再执行 git pull 拉取远程代码同步即可。

2、reset 回退
reset 比较暴力,相当于 可适用于 代码在工作区、暂存区、仓库区等任何场景

git fetch --all
git reset --hard origin/master
git pull   // 这一步为了同步远程代码,不需要的话可不执行

git fetch 指令是下载远程仓库最新内容,不做合并。
git reset 指令把HEAD指向master最新版本。
reset --hard:重置后不保留暂存区和工作区
reset --soft:保留工作区,并把重置 HEAD 所带来的新的差异放进暂存区(此时代码的变更状态相当于执行完 git add命令)
reset --mixed:reset的默认参数,保留工作目录,并重置暂存区(此时代码的变更状态相当于执行 git add命令之前)

或者

获取版本ID

git log --pretty=oneline

回退到指定ID

git reset --hard id

如果需要操作失误,则获取操作ID

git reflog

查找到你要的 操作id,使用上文说的 git reset --hard id。又回退到当初一模一样的版本

3、stash 暂存(推荐)
我比较喜欢的方法,是用stash,暂存代码再同步。

首先,将所有代码添加至暂存区:

git add .

然后,将代码临时保存:

git stash

此时代码会重置到修改前的状态,可以同步远程仓库区,完事儿。

git pull

同步后,如果还想继续修改原来的代码,可将临时代码恢复至工作区:

git stash pop

查看储藏起来的状态

git stash list

可以用来应用储藏的状态。比如 git stash apply 0 就会应用储藏id为0 的中间状态。

git stash apply id

<了解分支>

分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是“默认的”分支。在其他分支上进行开发,完成后再将它们合并到主分支上。

在这里插入图片描述

1. 查看当前分支

git branch

注意: 新建的分支虽然是默认master,但如果里面没有文件的话是不会被显示的。

注意:查看分支,有星号它代表现在检出的那一个分支

2. 新建分支

git branch 分支名

注意:新建分支内容为空

注意:master分支是默认创建的,不用重复创建

3. 重命名分支

git branch -m 原分支名 新分支名

4. 切换分支

git checkout 分支名

注意:不同分支间内容是不互通的,需要切换进行操作

5. 合并分支

首先到你想要合并到的分支

git checkout master

然后命令你想要被合并的分支

git merge <被合并分支名>

注意:如果合并出现冲突,这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。改完之后,你需要执行如下命令以将它们标记为合并成功:

git add <文件名>

在合并改动之前,你可以使用如下命令预览差异:

git diff <source_branch> <target_branch>

6. 删除分支

git branch -d 分支名

注意:删除时需要切换到另外一个分支才能删除本分支

7. 查看每一个分支的最后一次提交

git branch -v 

<了解远程仓库>

Git 并不像 SVN 那样有个中心服务器。

目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作。 你就需要将数据放到一台其他开发人员能够连接的服务器上。

在这里插入图片描述

0. 获取远程仓库的url

在这里插入图片描述

1. 检出仓库(下载远程仓库)

git clone 远程仓库的url

2. 设置远程仓库

git remote add 别名通用为origin 远程仓库url

注意:如果使用过检出仓库,则会默认设置一个origin并且url为你检出仓库的地址

3. 查看远程仓库

git remote -v

4. 修改远程仓库名

git remote rename 原仓库名 新仓库名

5. 删除远程仓库

git remote rm 仓库名

6. 更新本地仓库(从远程仓库获取更新)

将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并。

git pull origin master:brantest

注意: 如果远程分支是与当前分支合并,则冒号后面的部分可以省略。

注意:pull默认是获取master分支,如果想要获取远程仓库的所有分支则需要(前提需要pull过仓库)

git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done

注意:如果本地仓库不是通过检出仓库创建,并且其中有自己设置的内容,提示fatal: refusing to merge unrelated histories,则需要

git pull origin master --allow-unrelated-histories

或者

git pull --rebase origin master  

7. 推送远程仓库(将本地仓库推送到远程)

git push -u 远程仓库 远程分支名

8. 远程仓库回退

使用网站操作

<了解IDEA>

配置GIT

在这里插入图片描述

在这里插入图片描述

在IDEA中使用git命令

在这里插入图片描述

新建git项目

第一步

正常建立一个项目

第二步

将这个项目设置为本地仓库

在这里插入图片描述

在这里插入图片描述

检出项目(克隆)

在这里插入图片描述

在这里插入图片描述

添加到缓存区(git add)

在这里插入图片描述

提交到HEAD区(git commit)

在这里插入图片描述

在这里插入图片描述

注意:要写注释

注意:如果有报错则跳过即可

添加分支

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

获取远程更新(git pull)

在这里插入图片描述

在这里插入图片描述

推送到远程仓库 (git push)

在这里插入图片描述
在这里插入图片描述

<实用技巧>

记住gitee账号密码

打开工作空间,右键,选择 git bash ,在打开的窗口中执行命令:

git config --global credential.helper store

去重新下载,第一次输入帐号密码,之后再下载就不会出现了

设置用户名邮箱

git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

内建的图形化 git

gitk

彩色的 git 输出

git config color.ui true

显示历史记录时,每个提交的信息只显示一行:

git config format.pretty oneline

交互式添加文件到暂存区

git add -i


这篇关于2021-07-04的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程