乐趣区

关于git:Git基本使用

1,Git 的四大工作区域


  • Workspace:你电脑本地看到的文件和目录,在 Git 的版本控制下,形成了工作区。
  • Index/Stage:暂存区,个别寄存在 .git目录下,即.git/index, 它又叫待提交更新区,用于长期寄存你未提交的改变。比方,你执行git add,这些改变就增加到这个区域啦。
  • Repository:本地仓库,你执行git clone 地址,就是把近程仓库克隆到本地仓库。它是一个寄存在本地的版本库,其中 HEAD 指向最新放入仓库的版本。当你执行git commit,文件改变就到本地仓库来了~
  • Remote:近程仓库,就是相似 github,码云等网站所提供的仓库,能够了解为近程数据交换的仓库~

2,Git 文件的四种状态


依据一个文件是否已退出版本控制,能够把文件状态分为:Tracked(已跟踪)和 Untracked(未跟踪),而 tracked(已跟踪)又包含三种工作状态:Unmodified,Modified,Staged

  • Untracked: 文件还没有退出到 git 库,还没参加版本控制,即未跟踪状态。这时候的文件,通过 git add 状态,能够变为Staged 状态
  • Unmodified:文件曾经退出 git 库, 然而呢,还没批改, 就是说版本库中的文件快照内容与文件夹中还完全一致。Unmodified的文件如果被批改, 就会变为 Modified. 如果应用git remove 移出版本库, 则成为 Untracked 文件。
  • Modified:文件被批改了,就进入 modified 状态啦,文件这个状态通过 stage 命令能够进入 staged 状态
  • staged:暂存状态. 执行 git commit 则将批改同步到库中, 这时库中的文件和本地文件又变为统一, 文件为 Unmodified 状态

3,Git 的根本常用命令


  • git init
  • git clone
  • git pull/git fetch:

    • git remote -v:查看近程仓库
    • git fetch/pull origin master:temp:从近程的 origin 仓库的 master 分支下载到本地 master 并新建一个 temp 分支(pull 为间接与本地仓库合并,而 fetch 不会主动合并,应用 fetch 是更为平安的一种抉择)
  • git add:将内容存进 Index/Stage(暂存区) 中。

    • git restore <file>:撤销 add 的内容。
  • git commit -m ‘ 提交形容 ’:将文件提交到Repository(本地仓库)。
  • git push

<h2> 分支操作 </h2>

  • git checkout 分支名:切换到该分支。
  • git checkout -b dev:创立分支并间接切换到该分支。
  • git branch:查看以后分支(- v 查看分支的更具体的信息:hash)。
  • git merge xxx:合并分支。
  • git branch -d 分支名:删除分支。

<h2> 版本控制 </h2>

  • git log:查看各个版本的详细信息。

    • –pretty==oneline(以更简洁的形式显示,每个版本只显示一行,只显示版本的 hash 和提交的形容信息: - m 的内容)。
    • git oneline:比 --pretty==oneline的 hash 值更短。
    • git reflog:比 --pretty==oneline多了一个可查看须要回退版本的次数。
    • git reset –hard [文件 hash]:后退或者后退到该历史版本。
    • git reset –hard HEAD^:后退一个版本(有几个 ^ 符号就退几个版本)。
    • git reset –hard HEAD~n:后退 n 个版本。
  • git diff:比拟多个文件。

    • git diff 文件名:比拟该文件。
    • git diff 本地库中历史版本:与历史版本的文件进行比拟。
  • git status : 状态查看操作(查看暂存区状态,工作区状态)。

<h2> 解决抵触 </h2>

  • 抵触的体现:

  • 抵触的解决

    • 第一步:编辑,删除非凡标记<<< ===
    • 第二步:批改到称心地位,保留退出
    • 第三步:增加到缓存区 git add 文件名
    • 第四步:提交到本地库git commit -m ‘ 日志信息 ’ 留神:前面肯定不能带文件名

4,提交 PR


上面介绍如何标准的提交 PR 的整个过程。
<h2>issue</h2>

PR 的第一步就是提交issue,即提交你发现的 BUG:

  • labels: 抉择你要提交的问题的类型(如 BUG 类型,question 类型等)
  • 提交内容:只承受英文形容,否则会被回绝。

<h2> 下载代码 </h2>
失去官网确认后,Fork 分支:

抉择下载的形式后下载:

<h2> 批改代码 </h2>
下载代码后,倡议创立一个分支再批改 BUG,并且最好基于以后的开发分支

git checkout -b 分支名

接下在就是在本地修复 BUG,而后add&commit&push
<h2>Pull Request</h2>

接下来就是最初一步Pull Request,即PR

当你在上一步 push 代码后,再拜访你本人的 github 主页时,会有 pull request 提醒:

点击 Compare & pull request 后,就会到上面这个页面,最初点击 Create pull request 即可:

而后在这一页能够看到你的变更信息

5,工作中的 git 报错


1,
在执行 git push 命令时,产生连贯近程仓库谬误。

报错信息:OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

解决办法:

勾销 http 代理:

$ git config --global --unset http.proxy
$ git config --global --unset https.proxy

而后关上 Git Bash 工具,设置:

env GIT_SSL_NO_VERIFY=true
退出移动版