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