几番风雨 發表於 2022-4-1 16:27:00

git的安装使用+连接gitee

<h1 id="一版本控制器">一、版本控制器</h1>
<pre><code class="language-python hljs"><span class="hljs-string">"""
完成 协同开发 项目,帮助程序员整合代码
        i)帮助开发者合并开发的代码
        ii)如果出现冲突代码的合并,会提示后提交合并代码的开发者,让其解决冲突

软件:SVN 、 GIT(都是同一个人的个人项目)
        github、gitee(两个采用git版本控制器管理代码的公共平台)

git:集群化、多分支
"""
</span></code></pre>
<h1 id="二git">二、git</h1>
<h2 id="简介">简介</h2>
<pre><code class="language-python hljs"><span class="hljs-string">"""
什么是git:版本控制器 - 控制的对象是开发的项目代码
代码开发时间轴:需求1 =&gt; 版本库1 ==&gt; 需求2 =&gt; 版本库2 =&gt; 版本库3(版本库1) =&gt; 版本库4(版本库2)
"""
</span></code></pre>
<h2 id="git与svn比较">git与svn比较</h2>
<p><img src="https://img2018.cnblogs.com/blog/1736414/202002/1736414-20200227194503386-1898725702.png" alt="" class="medium-zoom-image" loading="lazy"></p>
<p><img src="https://img2018.cnblogs.com/blog/1736414/202002/1736414-20200227194426511-315138238.png" alt="" class="medium-zoom-image" loading="lazy"></p>
<h2 id="git的工作流程">git的工作流程</h2>
<p><img src="https://img2018.cnblogs.com/blog/1736414/202002/1736414-20200227194521848-1677009264.png" alt="" class="medium-zoom-image" loading="lazy"></p>
<h2 id="版本库间的通信">版本库间的通信</h2>
<p><img src="https://img2018.cnblogs.com/blog/1736414/202002/1736414-20200227194547614-487587502.png" alt="" class="medium-zoom-image" loading="lazy"></p>
<h2 id="git分支管理">git分支管理</h2>
<p><img src="https://img2018.cnblogs.com/blog/1736414/202002/1736414-20200227194600920-1463859858.png" alt="" class="medium-zoom-image" loading="lazy"></p>
<h1 id="三git使用">三、git使用</h1>
<h2 id="流程核心总结">流程(核心总结)</h2>
<pre><code class="language-python hljs"><span class="hljs-string">"""
1)有红色信息(工作区有内容),就执行 add
2)全绿信息(内容全部在暂存区),才执行 commit
3)只有被版本库控制的代码,才能被监听,所以可以回滚到任何一个版本
"""
</span></code></pre>
<h2 id="安装">安装</h2>
<pre><code class="language-python hljs"><span class="hljs-comment"># 1.下载对应版本:https://git-scm.com/download
<span class="hljs-comment"># 2.安装git:在选取安装路径的下一步选取 Use a TrueType font in all console windows 选项
</span></span></code></pre>
<h2 id="基础命令">基础命令</h2>
<h2 id="将已有的文件夹---初始化为git仓库">将已有的文件夹 - 初始化为git仓库</h2>
<pre><code class="language-python hljs"><span class="hljs-string">"""
&gt;: cd 目标文件夹内部
&gt;: git init
"""
</span></code></pre>
<h2 id="在指定目录下---初始化git仓库">在指定目录下 - 初始化git仓库</h2>
<pre><code class="language-python hljs"><span class="hljs-string">"""
&gt;: cd 目标目录
&gt;: git init 仓库名
"""
</span></code></pre>
<h2 id="在仓库目录终端下---设置全局用户">在仓库目录终端下 - 设置全局用户</h2>
<pre><code class="language-python hljs"><span class="hljs-string">"""
&gt;: git config --global user.name '用户名'
&gt;: git config --global user.email '用户邮箱'

gir log                # 查看日志
注:在全局文件 C:\Users\用户文件夹\.gitconfig新建用户信息,在所有仓库下都可以使用
"""
</span></code></pre>
<h2 id="在仓库目录终端下---设置局部用户">在仓库目录终端下 - 设置局部用户</h2>
<pre><code class="language-python hljs"><span class="hljs-string">"""
&gt;: git config user.name '用户名'
        -- 用户名
&gt;: git config user.email '用户邮箱'
        -- 用户邮箱
       
注:在当前仓库下的config新建用户信息,只能在当前仓库下使用
注:一个仓库有局部用户,优先使用局部用户,没有配置再找全局用户
"""
</span></code></pre>
<h2 id="查看仓库状态">查看仓库状态</h2>
<pre><code class="language-python hljs"><span class="hljs-string">"""
# 当仓库中有文件增加、删除、修改,都可以在仓库状态中查看
&gt;: git status
        -- 查看仓库状态
&gt;: git status -s
        -- 查看仓库状态的简约显示
"""
</span></code></pre>
<h2 id="工作区操作">工作区操作</h2>
<pre><code class="language-python hljs"><span class="hljs-comment"># 通过任何方式完成的文件删与改
<span class="hljs-comment"># 空文件夹不会被git记录
</span></span></code></pre>
<h2 id="撤销工作区操作改删了解从仓库工作区">撤销工作区操作:改、删(了解)。从仓库&gt;&gt;工作区</h2>
<pre><code class="language-python hljs"><span class="hljs-string">"""
&gt;: git checkout .
        -- 撤销所有暂存区的提交
&gt;: git checkout 文件名
        -- 撤销某一文件的暂存区提交
&gt;: git checkout 版本号
        -- 从仓库回滚到指定版本
"""
</span></code></pre>
<h2 id="工作区内容提交到暂存区">工作区内容提交到暂存区</h2>
<pre><code class="language-python hljs"><span class="hljs-string">"""
&gt;: git add .
        -- 添加项目中所有文件
&gt;: git add 文件名
        -- 添加指定文件
"""
</span></code></pre>
<h2 id="撤销暂存区提交add的逆运算很少使用">撤销暂存区提交:add的逆运算(很少使用)</h2>
<pre><code class="language-python hljs"><span class="hljs-string">"""
&gt;: git reset HEAD .
        -- 撤销所有暂存区的提交
&gt;: git reset 文件名
        -- 撤销某一文件的暂存区提交
&gt;: git reset .
        -- 撤销所有暂存区的提交
"""
</span></code></pre>
<h2 id="提交暂存区内容到版本库">提交暂存区内容到版本库</h2>
<pre><code class="hljs language-shell"><span class="hljs-meta">&gt;<span class="language-bash">: git commit -m <span class="hljs-string">"版本描述信息"
</span></span></span></code></pre>
<h2 id="撤销版本库提交commit的逆运算">撤销版本库提交:commit的逆运算</h2>
<pre><code class="language-python hljs"><span class="hljs-string">"""
回滚暂存区已经提交到版本库的操作:
    查看历史版本:
      &gt;: git log
      &gt;: git reflog
    查看时间点之前|之后的日志:
      &gt;: git log --after 2018-6-1
      &gt;: git log --before 2018-6-1
      &gt;: git reflog --after 2018-6-1
      &gt;: git reflog --before 2018-6-1
    查看指定开发者日志
      &gt;: git log --author author_name
      &gt;: git reflog --author author_name
    回滚到指定版本:
      回滚到上一个版本:
            &gt;: git reset --hard HEAD^
            &gt;: git reset --hard HEAD~
      回滚到上三个版本:
            &gt;: git reset --hard HEAD^^^
            &gt;: git reset --hard HEAD~3
      回滚到指定版本号的版本:
            &gt;: git reset --hard 版本号 (重点)
            &gt;: eg: git reset --hard 35cb292
"""
</span></code></pre>
<h2 id="过滤文件">过滤文件</h2>
<pre><code class="language-python hljs"><span class="hljs-comment"># .gitignore 文件
<span class="hljs-comment"># 1)在仓库根目录下创建该文件
<span class="hljs-comment"># 2)文件与文件夹均可以被过滤
<span class="hljs-comment"># 3)文件过滤语法

<span class="hljs-string">""" 过滤文件内容
文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤
/文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤

eg:
a.txt:项目中所有a.txt文件和文件夹都会被过滤
/a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤
/b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤
*x*:名字中有一个x的都会被过滤(*代表0~n个任意字符)
空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件)
"""
</span></span></span></span></span></code></pre>
<pre><code class="hljs language-x86asm"><span class="hljs-meta">.DS_Store

*.log*
<span class="hljs-meta">
.idea
<span class="hljs-meta">.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

*.pyc
scripts
</span></span></span></code></pre>
<h1 id="四创建远程gitee仓库">四、创建远程gitee仓库</h1>
<h2 id="选择线上仓库">选择线上仓库</h2>
<pre><code class="language-python hljs"><span class="hljs-string">"""
1.注册码云账号并登录:https://gitee.com/
2.创建仓库(课堂截图)
3.本地与服务器仓库建立连接
"""
<span class="hljs-string">"""
1)本地配置线上的账号与邮箱
&gt;: git config --global user.name "doctor_owen"
&gt;: git config --global user.email "doctor_owen@163.com"

2)在本地初始化仓库(git init),并完成项目的初步搭建(项目架构)(一般都是项目负责人完成项目启动)
# 这个过程就是git的基础部分的本地操作

3)采用 https协议 或 ssh协议 与远程git仓库通信提交提交代码(一般都是项目负责人完成)
        i) https协议方式,无需配置,但是每次提交都有验证管理员账号密码
        &gt;: git remote add origin https://gitee.com/doctor_owen/luffy.git# 配置远程源
        &gt;: git push -u origin master# 提交本地仓库到远程源
       
        ii) ssh协议,需要配置,配置完成之后就可以正常提交代码
        &gt;: git remote add origin git@gitee.com:jeff_911/chary.git# 配置远程源
        &gt;: git pull -u origin master# </span>将<span class="hljs-string">远程源</span>拉到本地仓库<span class="hljs-string">先pull 再push
        &gt;: git push -u origin master# 提交本地仓库到远程源
       
        &gt;: git clone git@gitee.com:jeff_911/chary.git任何人都可拿
       
        iii)查看源及源链接信息
        &gt;: git remote
        &gt;: git remote -v
       
        iv)删除源链接
        &gt;: git remote remove 源名字
       
注:origin远程源的源名,可以自定义;master是分支名,是默认的主分支
"""
</span></span></code></pre>
<p><img src="https://img2018.cnblogs.com/blog/1736414/202002/1736414-20200227194620908-180246684.png" alt="" class="medium-zoom-image" loading="lazy"></p>
<h1 id="五用本地仓库首次初始化远程仓库">五、用本地仓库首次初始化远程仓库</h1>
<h2 id="本地仓库与远程仓库建立源连接">本地仓库与远程仓库建立源连接</h2>
<pre><code class="hljs language-mipsasm">前提:本地仓库已经创建且初始化完毕(代码已经提交到本地版本库)

本机命令,添加远程源:git remote <span class="hljs-keyword">add <span class="hljs-keyword">origin ssh@*.git
        采用ssh协议的remote源
</span></span></code></pre>
<h2 id="创建电脑的公钥私钥">创建电脑的公钥私钥</h2>
<pre><code class="hljs language-dart">官网:https:<span class="hljs-comment">//gitee.com/help/articles/4181#article-header0

本机命令,生成公钥:ssh-keygen -t rsa -C <span class="hljs-string">"*@*.com"
        邮箱可以任意填写
本机命令,查看公钥:cat ~/.ssh/id_rsa.pub<br><br>  </span>补充:</span></code></pre>
<h2>-t : t是type的缩写</h2>
<p>-t 即指定密钥的类型,密钥的类型有两种,一种是RSA,一种是DSA</p>
<h3>rsa:是指RSA算法</h3>
<p>RSA:RSA加密算法是一种非对称加密算法,是由三个麻省理工的牛人弄出来的,RSA是他们三个人姓的开头首字母组合。<br>DSA:Digital Signature Algorithm (DSA)是Schnorr和ElGamal签名算法的变种。<br>为了让两个linux机器之间使用ssh不需要用户名和密码。所以采用了数字签名RSA或者DSA来完成这个操作。ssh-keygen默认使用rsa密钥,所以不加-t rsa也行,如果你想生成dsa密钥,就需要加参数-t dsa。</p>
<h2>-b :b是bit的缩写</h2>
<p>-b 指定密钥长度。</p>
<ul>
<li>对于RSA密钥,最小要求768位,默认是2048位。4096指的是RSA密钥长度为4096位。</li>
<li>DSA密钥必须恰好是1024位(FIPS 186-2 标准的要求)。</li>

</ul>
<h2>-C:C是comment的缩写</h2>
<p>-C表示提供一个注释,用于识别这个密钥。<br>“你的邮箱地址(因为邮箱地址具有唯一性所以一般用这个)”:用于识别这个密钥的注释<br>引号里的内容为注释的内容,所以" "里面不一定填邮箱,可以输入任何内容。</p>
<p><img src="https://img2018.cnblogs.com/blog/1736414/202002/1736414-20200228202631763-1220716524.png" alt="" class="medium-zoom-image" loading="lazy"></p>
<h2 id="提交本地代码到远程仓库">提交本地代码到远程仓库</h2>
<pre><code class="hljs language-mipsasm">命令:git pull <span class="hljs-keyword">origin master
命令:git push <span class="hljs-keyword">origin master
</span></span></code></pre>
<p><img src="https://img2018.cnblogs.com/blog/1736414/202002/1736414-20200227194646383-780512259.png" alt="" class="medium-zoom-image" loading="lazy"></p>
<h2 id="从远程仓库拿到本地">从远程仓库拿到本地</h2>
<pre><code class="hljs language-bash">命令:git <span class="hljs-built_in">clone git@gitee.com:jeff_911/chary.git
</span></code></pre>
<h1 id="六remote源操作">六、remote源操作</h1>
<pre><code class="language-python hljs"><span class="hljs-string">"""
1)查看仓库已配置的远程源
&gt;: git remote
&gt;: git remote -v

2)查看remote命令帮助文档
&gt;: git remote -h

3)删除远程源
&gt;: git remote remove 源名
eg: git remote remove origin

4)添加远程源
&gt;: git remote add 源名 源地址
&gt;: git remote add orgin git@*.git
"""
</span></code></pre>
<h1 id="七多分支开发">七、多分支开发</h1>
<h2 id="分支操作">分支操作</h2>
<pre><code class="language-python hljs"><span class="hljs-string">"""
1.创建分支
&gt;: git branch 分支名

2.查看分支
&gt;: git branch

3.切换分支
&gt;: git checkout 分支名

4.创建并切换到分支
&gt;: git checkout -b 分支名

5.删除分支
&gt;: git branch -D 分支名

6.查看远程分支
&gt;: git branch -a

7.合并分支
先到主分支master,再把次分支dev合并到主分支
&gt;: git merge 分支名
"""
</span></code></pre>
<h2 id="线上分支合并">线上分支合并</h2>
<p><img src="https://img2018.cnblogs.com/blog/1736414/202002/1736414-20200227194659182-677347521.png" alt="" class="medium-zoom-image" loading="lazy"></p>
<h2 id="远程仓库回滚">远程仓库回滚</h2>
<pre><code class="language-python hljs"><span class="hljs-string">"""
用dev分支举例
1)本地切换到远程要回滚的分支对应的本地分支
git checkout dev

2)回滚本地分支
git reset --hard 版本号

3)本地版本强行提交给服务器
git push origin dev -f
"""
</span></code></pre>
<h1 id="八冲突解决">八、冲突解决</h1>
<h3 id="">&nbsp;</h3>
<pre><code class="language-python hljs"><span class="hljs-string">"""
1)在远程仓库和本地仓库版本不一致时,拉取远程仓库版本到本地时,两个版本进入融合,可能会出现版本冲突

2)定位冲突文件冲突代码,线下沟通冲突代码,整合代码解决冲突

3)将解决冲突后的代码重新提交到本地版本库

4)再拉去远程仓库,直到没有冲突,提交本地版本库到远程
"""

<span class="hljs-string">"""
&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD# 冲突的开始
# 自己的代码
=======# 分割线
# 别人的代码
&gt;&gt;&gt;&gt;&gt;&gt;&gt; b63c408abd05b87fc492d40523240561999dba50# 冲突的结束(版本)
"""

<span class="hljs-string">"""
1)删除冲突相关标识:冲突的开始、分割线、冲突的结束(版本)
2)线下沟通,根据实际需求完成代码整合
3)测试整合后的代码

"""

<span class="hljs-string">"""
出现冲突的前提:
1)不同开发者同时操作了同一文件
2)并且在相同行写了代码
强调:有业务交际时,版本合并不一定会出现冲突相关的标识,但是可能会带着代码运行崩溃,所有理论上每一次版本合并,都要测试合并后的所有功能(及其之少的情况)
"""<br></span></span></span></span></code></pre>
<h1 class="md-end-block md-heading"><span class="md-plain">pycharm配置git</span></h1>
<p class="md-end-block md-p"><img src="https://img2022.cnblogs.com/blog/1794604/202204/1794604-20220414180944755-346073290.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p><img src="https://img2022.cnblogs.com/blog/1794604/202204/1794604-20220414180947692-927368387.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;<img src="https://img2022.cnblogs.com/blog/1794604/202204/1794604-20220414180955149-103034539.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;<img src="https://img2022.cnblogs.com/blog/1794604/202204/1794604-20220414181001872-274432509.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;<img src="https://img2022.cnblogs.com/blog/1794604/202204/1794604-20220414181007675-173513787.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;<img src="https://img2022.cnblogs.com/blog/1794604/202204/1794604-20220414181013591-2069565867.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;<img src="https://img2022.cnblogs.com/blog/1794604/202204/1794604-20220414181016914-847189865.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<pre><code class="language-python hljs"><span class="hljs-string"><span class="hljs-string"><span class="hljs-string"><span class="hljs-string">&nbsp;</span></span></span></span></code></pre><br><br>
来源:https://www.cnblogs.com/l-uz/p/16087637.html
頁: [1]
查看完整版本: git的安装使用+连接gitee