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 restore <file>:撤销
- 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