首页 > 其他分享 >肖sir___git讲解

肖sir___git讲解

时间:2022-08-27 09:23:02浏览次数:63  
标签:aa sir Git 文件 github git 版本 ___

一、git介绍 git Git(读音为/gɪt/。),是目前世界上最先进的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 作用:更好的管理我们的程序,比如你原来提交过的内容,后面虽然修改了,但是通过git这个工具,可以把你原来提交的内容重现出来,这样对于你后来才意识到的一些错误的更改,可以进行还原。现在很多其他自由软件项目中也使用了 Git, 如 :很多 Freedesktop 的项目迁移到了 Git 上。     二、github介绍 gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。(远程仓库)   它是一个非常适合程序员交流的网站,很多国际上的技术大牛都在github上有自己的开源代码,其他人只要申请账号就可以随意的看到这些大牛写的程序。同时国内的很多互联网公司如百度,阿里等,也在github上公布有开源的代码。 git可以认为是一个软件,能够帮你更好的写程序, github则是一个网站,这个网站可以帮助程序员之间互相交流和学习。   三、术语 1、版本控制:一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看历史记录,备份以便恢复以前的版本软件工程技术。 优点: (1)实现跨区域多人协同开发 (2)追踪和机载一个或多个文件的历史记录 (3)组织和保护你的源代码和文档 (4)统计工作量 (5)并行开发,提高开发效率 (6)跟踪记录整个软件的开发过程 (7)减轻开发人员的负担,节省时间,同时降低人为错误 (理解为:用于管理多人协同开发项目技术) 2、仓库:受版本控制所有文件修订历史的共享数据库或文件 3、工作空间:本地硬盘或linux用户账户上编辑的文件副本 4、 工作区 /工作树:工作区中包含了仓库的工作文件,可以修改内容和提交更改。 5、暂存区:暂存区是工作去用来提交更改( commit)  前可以暂存工作区的变化 工作区(git  add)----------  暂存区(git   commit)-------版本库 6、签出(checkout):从仓库中将文件的最新修改版本复制到工作空间 7、签入(checkin):将新版本复制回仓库 8、提交 (commit):对各自的工作副本做更改,并将这些更改提交到仓库 9、冲突(conflict):多人对同一个文件的工作副本进行修改,并将这些更改提交到仓库 10、合并(merge):将某分支上的更改连接到主干分支; 11、分支(branch):从主线上分开的副本,默认分支叫master 12、锁(lock):获得修改文件的专有权限 13、头(HEAD):头是一个象征性的参考,最常用以直系那个当前选择的分支   四、常见的版本控制器 git、svn、cvs、vss、tfs   五、Git 与 SVN 区别 Git 与 SVN 区别点: 1、Git 是分布式的,SVN 不是 2、Git 把内容按元数据方式存储,而 SVN 是按文件 3、Git 分支和 SVN 的分支不同 4、Git 没有一个全局的版本号,而 SVN 有 5、Git 的内容完整性要优于 SVN    

 

六、git 安装:

 

 

 

七、git使用:

7.1、git的设置

 

 

——进入git界面(选择git bash):进入时,显示默认进入home目录

选择git bash的原因:可以使用linux命令来进行git的操作

 

——进入d盘,并在d盘创建一个git目录做练习

 cd  /

cd  d

mkdir  git

 

 

 

——进入git目录,并在git目录下创建版本库,创建好的版本库会在git目录下产生一个隐藏文件夹,此文件夹即版本库;

cd git   进入创建的目录

git init    建仓库

——进入git目录,并在git目录下创建版本库,创建好的版本库

会在git目录下产生一个隐藏文件夹,此文件夹即版本库;

 

——进行用户设置(没有弹出任何提示则为设置成功,在git  config --local  --list最后查询)

用户名和用户邮箱(使用我们github 注册的账号和邮箱)

git config user.name “xlh123123”

git config user.email “[email protected]

git config  --local --list   查看仓库当前配置

 

7.2、git的使用

——创建一个文件aa,并编辑,用于练习使用git文件版本管理

Touch aa

Vim aa

Cat aa

 

 

 

(注:用cat命令查看我输入了多少行数据,共三行)

——开始添加至缓存区

Git add aa

 

——用git stauts 查看aa文件的状态

Git status

(注:可以看到提示,有新文件(new files)添加了,但是没有提交(not commit yet))

 

——把aa文件进行提交至我们创建的版本库

Git commit -m aa

 

(注:提示我们提交成功,1个文件已改变,新增三行数据,此时aa文件已提交到版本库)

(注2:git add命令仅把文件添加到缓存,但并未实际提交到版本库)

(注3:git commit命令会把在缓存区的所有文件提交到版本库);

关系如图: 

——提交完成后,我们回头看看aa文件的状态

 

(注:这里提示我们,本地文件夹和版本库的aa文件是一致的,不需要提交,工作树是干净的)

 7.3 、gitgithub的连接

Github介绍:https://github.com/  

(注:github像一个程序代码图书馆,很多程序员把他们写的代码上传到github,公开并供别人下载,我们的操作就是连接好后,把自己写的文档上传至自己的github上)

——先进行注册在hub上的账户;

 

——注册完毕后登录;建立个人的存储库

或者

 

 

 

 

——在我的存储库下建立一个新的存储库:

 

 

 

 

 

 

 

git和github 连接需要秘钥:

 ——填写资料,填完后,告诉我们创建成功:

(注:这就是我们的存储库url([email protected]:dayday001/-sir-.git),通过url我们可以让我们的git连接到我们的版本库)

 

——在git上获取密钥

Ssh-keygen (输入后连按三次回车)(箭头指向为密钥在所在路径)

——去对应路径下找到密钥,用记事本打开

 

 

 

 

 

 

 

——进入github添加我们的密钥

 

 

以上git与github的连接就成功了。

7.4gitgithub之间互传文件

——将git与github上前面新创建的存储库连接(我的url:[email protected]:dayday001/-sir-.git)

Git remote add origin [email protected]:dayday001/-sir-.git

 

——将提交的aa文件上传至github

Git push -u origin master

 

此时github上面已有我们上传的文件

 

——拉取github上的文件

  git pull origin master

——下载整个存储库(可以复制自己的,也可以复制别人的公开存储库,复制自己的其实和git pull命令差不多作用,在这里演示如何下载别人的存储库下来)

 

mkdir  bb

 

在github上随便找个别人的存储库

复制别人存储库url

 

 

 

 

使用命令: git clone 别人的url

Git clone [email protected]:TheAlgorithms/Python.git

 

可以看到D盘的git文件下的bb目录下,已经下载到了我在github上随便找到的存储库文件夹

 

7、5版本回退与撤销:

——版本回退(类似于word文档编辑后的撤销操作,但版本回退命令是回退commit后版本库)

首先我们对aa进行编辑,新增几行数据(aaa bbb ccc)

 

添加到缓存库,并提交至版本库

假设现在突然发现插的三行的写错了,需要变回原样,用版本回退命令:

Git reset --hard head^

 

可以看到插入的三行已消失

——撤销修改(和版本回退有所不同,撤销修改撤销的是在缓存区的修改后文件)

首先对aa文件编辑,插入 xxx yyy zzz三行,并添加到缓存区,但不提交

 

这个时候缓存区的aa和版本库的aa有差别(因为我没有commit) ,差了三行,我们可以用命令来查看

Git status

我们看下差异在哪里:

Git diff HEAD

我们看下差异在哪里:

Git diff HEAD

现在撤销掉xxx yyy zzz这三行:

Git reset HEAD aa

再看文件状态:git status aa

(添加后,modifed是绿色的,现在我们已经撤销修改,modified变成了红色,表示我们的本地库aa文件已经修改,但是没有添加到缓存

7.6分支管理

——查看当前分支:git branch

 

——创切换到一条分支:git checkout -b xiaosir

 

——我们在xiaosir分支下对aa文件进行修改(增加ppp qqq )

 

——我们在master分支下查看 aa文件,可以看到master没有刚刚添加的内容:

Git checkout master

 

(注:这充分解释了:分支即工作线,即如果你在一条工作线进行文档修改编辑工作,那是不会影响到另一条工作线的,其中,一般以master为主分支)

——把xiaosir分支的修改结果合并到master分支上;

Git merge xiaosir (注:需要在master分支下

——合并分支过程产生的冲突:

上面的步骤只是单独对一条分支进行修改并合并,但是在两条分支修改并合并的时候,会有冲突产生;

在xiaosir分支下修改编辑:git checkout xiaosir;

 

在xiaosir分支下添加并提交:

 

切换至master再进行修改并添加提交:

 

此时,我们知道,我们在xiaosir分支增加了一行文字,master分支也增加一行文字(文字内容与xiaosir分支上的不同),也就是我们在不同分支上做了不同修改,现在我们对这个操作进行合并:

Git merge xiaosir (该命令在master分支下操作)

 

现在来看合并的结果:

可以看到,内容有合并,但是用<<<<<<<  ==========  >>>>>>>>>分隔符分开了;

Git status 命令也告诉我们冲突了

 

——合并冲突修复:

Git add aa

Git commit -m “conflict fixed”

 

——合并冲突修复:

Git add aa

Git commit -m “conflict fixed”

 

 

 

Git报错:

1

 

 2、

 git  config --local  --list  查看配置是否成命令

 

 3、

 

 

 解决方案:先删除 

1、git  remote  rm  origin

2、再次执行添加就可以

 

4、

 

5、

 

方法一:git 强制拉取远程代码覆盖本地 

1、git fetch --all

2、git reset --hard origin/master 3、git pull   方法二:退回版本 git  reset  --hard  HEAD  

标签:aa,sir,Git,文件,github,git,版本,___
From: https://www.cnblogs.com/xiaolehua/p/16629820.html

相关文章

  • 10个快速入门Query函数使用的Pandas的查询示例
    转载:https://mp.weixin.qq.com/s/TJStQDtUfOOXtb__cpivDgpandas.的query函数为我们提供了一种编写查询过滤条件更简单的方法,特别是在的查询条件很多的时候,在本文中整理了1......
  • LeetCode 1047. 删除字符串中的所有相邻重复项
    classSolution{public:stringremoveDuplicates(strings){stack<char>stack;for(inti=0;i<s.size();i++){if(stac......
  • 3个Pandas高频使用函数
    转载:https://mp.weixin.qq.com/s/6FECFHIkyItYnmQ37Vn_SQ 大家好,我是Peter~本文主要是给大家介绍3个Pandas日常高频使用函数:apply+agg+transform。模拟数据模拟......
  • JS 中对象的创建方法
    //字面量创建对象    //varobj={};   //创建了一个空对象    //varobj={      //name:'hong',     ......
  • webxone使用
    webxone使用主窗口 uses wxoExec;procedureTfMain.FormCreate(Sender:TObject);beginAlign:=alNone;Position:=poDesigned;WindowState:=wsNormal;......
  • 肖sir__java__02基本
    注意点:1、java中首字母大小写区分2、类名首个字母大写3、方法名,首字母小写,多个单词后面大写4.文件名和类名一致,后缀名为.java5.出现波浪线就市报错6、都是main方法......
  • IDEA的模板及配置
    什么是模板什么是模板?简单的理解就是配置一些字母缩写。使用简写的方式,就能出现预定义的固定代码。这样做可以大大提高开发效率。最常见的就是输入 sout就会出现 Syst......
  • matlab中数据结构之-tables
    作为matlab中的一种数据结构,是一种按行和列存储信息的一种表格式的数据结构,同一列中的数据具有相同的长度,和我们平常见到的表差不多。使用关键table函数创建,格式为tabl......
  • IfcSolidOrShell
    IfcSolidOrShell类型定义iFCSolidShell提供了选择几何模型中的几何体(iFCSoledModel和子类型)或拓扑模型中的壳(IfcClosedShell)的选项。 IFC4中的新选择类型。  Enu......
  • Shopify Spark主题模板配置修改
    对于那些正在启动业务的shopify卖家来说,Spark主题是很好的选择,它跨越了你的愿景和市场之间的差距,将美感和必要性结合在一起,这样你就可以用最小的触角将事情进行下去。通过......