git

Git是什么

Git是一个开源的[分布式][版本控制系统],用于敏捷高效地处理任何或小或大的项目
版本控制器
CVS/SVN/Git

SVN
客户端/服务器

GIT
客户端/代码托管网站(例如:github)
类似的代码托管网站还有:github/码云/阿里云Code源码管理
类似的技术GitLab,但它与GitHub又有一定的区别
GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源。与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。
不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,
你总不可能把团队内部的智慧总放在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。

Git与SVN区别

1、去中心化
GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。
2、git仓库的任何一个拷贝都可以独立作为一个服务器来使用
3、在Git中文件有四种状态:
未跟踪(untrack):表示文件为新增加的
已修改(modified):表示修改了文件,但还没保存到git仓库中。
已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
已提交(committed):表示文件已保存在git仓库中。
4、其它
GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。
GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏
5、直接记录快照,而非差异
GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。
6、 GIT分支和SVN的分支不同,分支在SVN中一点不特别,就是版本库中的另外的一个目录。

在这里插入图片描述

Github 的简单使用

登录github网站

在这里插入图片描述
没有的就注册一个
创建一个公库:
在这里插入图片描述
私库就选择Private就好在这里插入图片描述

在这里插入图片描述
建好了一个公库和私库:在这里插入图片描述
删除仓库:
在这里插入图片描述
在这里插入图片描述
创建文件夹,创建文件
在这里插入图片描述
在这里插入图片描述

Git下载安装

下载地址:
https://git-scm.com/downloads

下载完成之后:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建开始菜单目录名称,默认git,不需要修改
在这里插入图片描述
选择git使用的编辑器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
行末换行符转换,使用默认值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

检测安装成功,任意窗口或桌面都可以右键,出现下面两个选项即可

在这里插入图片描述

Git常用命令

命令行配置
“Git bash here”打开命令窗口
查看git的配置列表
git config --list

设置用户名/邮箱/密码
git config --global user.name “username”
git config --global user.email “email”
git config --global user.password “password”

我这里用ssh key就不需要密码
在这里插入图片描述
然后在这里会生成一个文件:
在这里插入图片描述

Git命令使用场景

工作区域
按照本地计算机与远程计算机划分,工作区域有以下几种
1)本地计算机
Working Directory(工作目录):即正在编辑的文件状态。文件状态为未跟踪(untrack)和已修改(modified)在此区域内。
Staging Area(暂存区):保存了下次将提交的文件列表信息。文件状态为已暂存(staged)在此区域内。
Repository(本地仓库):提交到本地仓库的文件。
2)远程计算机
Repository(远程仓库):已提交到远程计算机内的文件。

在这里插入图片描述
常用命令
git clone :将远程仓库clone到本地计算机。
git status :展示工作区及暂存区域中不同状态的文件。
git add :将内容从工作目录添加到暂存区。
git commit :所有通过 git add 暂存的文件提交到本地仓库。
git push :将本地仓库的记录提交到远程仓库。
git reset HEAD :从暂存区移除指定文件。
git checkout – :从本地仓库恢复指定文件。
git pull :拉取远程仓库的数据。
git init

公库:

使用git提交文件至远程仓库

首先明确大致流程:
1.取得项目的 Git 仓库
第一种是从github现有仓库(远程)克隆出新的仓库(本地)
第二种是在工作目录中初始化新的仓库(本地),然后再与一个Github上的仓库(远程)关联
2.在本地的克隆库上进行你所需要的改动,修改文件内容,添加文件等;
3.add,commit,push三部曲。

从github现有仓库(远程)克隆出新的仓库(本地)

具体步骤:
1.取得项目的Git仓库(从github现有仓库克隆)
## 此处url改为自己仓库的地址
git clone https://github.com/lixiao12/test224_pub.git

 注1:此命令,会在当前目录下创建一个名为test224_pub的目录,其中包含一个 .git 的目录,用于保存下载下来的所有版本记录。
      如果进入这个新建的 test224_pub目录,你会看到项目中的所有文件已经在里边了,准备好后续的开发和使用。

 注2:克隆仓库的命令格式为 git clone [url],Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快    
      git clone git@github.com:fsliurujie/test.git          --SSH协议
      git clone git://github.com/fsliurujie/test.git        --GIT协议
      git clone https://github.com/fsliurujie/test.git      --HTTPS协议 
      提问:那平时使用哪个协议最好呢???

  注3:你熟悉其他的 VCS 比如 Subversion,你可能已经注意到这里使用的是 clone 而不是 checkout。这是个非常重要的差别,
      Git 收取的是项目历史的所有数据(每一个文件的每一个版本),服务器上有的数据克隆之后本地也都有了。实际上,
      即便服务器的磁盘发生故障,用任何一个克隆出来的客户端都可以重建服务器上的仓库,回到当初克隆时的状态 
 注4:如果希望在克隆的时候,自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字
      git clone https://github.com/lixiao12/test224_pub.git mytest1

注5:如何查看.git目录(默认为隐藏文件夹)
      window菜单:“查看”->“选项”->选择,选项卡“查看”->勾中“显示隐藏的文件、文件夹和驱动器”

公库用https协议
私库用ssh协议
在这里插入图片描述
在这里插入图片描述
然后就下载到本地仓库了
在这里插入图片描述

查看初始状态
git clone 一个仓库后,运行 git status
注1:另外一种查看git仓库状态的方式
进入test1目录,用ls -ah命令如果命令窜显示.git目录,就表示已经克隆成功,并且该目录已经是git可以管理的仓库了

在这里插入图片描述
添加一个文件
在这里插入图片描述
在这里插入图片描述
可以看到文件上方有个 “Untracked files”,表示这个文件“未跟踪”
新创建的文件添加到“暂存区”
执行 git commit
在这里插入图片描述
“暂存区”的内容提交到“本地仓库”
要输入“提交说明”的话就需要
按insert键:
按esc
:wq退出
在这里插入图片描述
在这里插入图片描述
这时候就没有要提交的文件了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
提交成功
在这里插入图片描述
对change.txt文件进行了修改:
在这里插入图片描述
在这里插入图片描述

工作目录中初始化新的仓库(本地),然后再与一个Github上的仓库(远程)关联

在这里插入图片描述
在GitHub主页创建仓库
在这里插入图片描述
建好后把这行代码copy将本地仓库的当前分支与远程仓库相关联 :
在这里插入图片描述
将本地代码库的某一分支推送到远程的代码库
在这里插入图片描述
ok了:
在这里插入图片描述
注1:把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,
还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
注2:补充命令,查看git仓库的远程代码库的地址:git remote -v
注3:再次添加文件b.txt,依次add/commit/push操作,则与之前没有区别了

使用git从远程仓库pull(拉)至本地仓库
在远程仓库新建了add.txt:
在这里插入图片描述

Git冲突

1、先从远程仓库pull代码至本地,再修改冲突代码, git pull
注1:git status查看仓库状态,会显示红色的错误提示消息“ both modified: 冲突.txt”

2、打开 冲突.txt,手动修改冲突部分的代码
<<<<<<< HEAD
xxx目录做修改
=======
xxx目录做修改
>>>>>>> b6d61fdf3b4088b12c83e0a72dc5a431a023c0c2
注1:<<<<<<< HEAD >>>>>>>之间的即为冲突的代码,手动修改即可

3.依次add/commit/push代码至远程仓库
commit执行完成,重新查看仓库状态git status,红色的错误提示消息“ both modified: 冲突.txt”
已经没有,表示冲突已解决

假设zz和ss是两个人,同时开发zh_pub2,两人同时改动了
在这里插入图片描述
ss提交了:
在这里插入图片描述
这时zz提交就会报错:
在这里插入图片描述
解决这个冲突:

在这里插入图片描述
把该删的删掉再提交:

在这里插入图片描述
成功解决冲突:
在这里插入图片描述

Git Gui的使用

汉化:

在这里插入图片描述
在这里插入图片描述
在本地仓库打开:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这时候还在本地仓库,没有到远程仓库
在这里插入图片描述
上传,出现绿色说明成功

私库:

Ssh key 介绍及使用

Ssh key配置

检查下自己之前有没有已经生成ssh
cd ~/.ssh
注1:当cd ~/.ssh命令执行后窗口返回“no such file or directory”的时候,表示我们的电脑并没有ssh key,所以需要我们创建ssh key
注2:~表示当前用户的目录,比如我的是:C:\Users\Administrator
注3:ls命令执行后,如果本地有ssh秘钥的话会有id_rsa.pub,config,known_hosts等文件
在这里插入图片描述
生成(或删除)秘钥
ssh-keygen -t rsa -C “xxx@xx.com”//这里的邮箱要换成自己注册时的邮箱
接着按3个回车即可。

注1:如果本地有ssh,执行以上命令会出现正面的提示,这里选择y,表示覆盖本地的ssh key,其实也就是ssh秘钥删除的意思
注2:为什么要删除秘钥,创建SSH的时候设置过密码,那就很有可能git操作时出现忘记密码的尴尬情况,
不要想着怎么重新修改密码了,选择重新创建一个ssh秘钥
注3:创建ssh key不要输入密码了,不然操作起来太累

在这里插入图片描述
接着就会生成.ssh文件:
在这里插入图片描述
远程github仓库配置
1.登陆到自己的gitbub,点击右上角的倒立小三角形。选择 settings
2.选择SSH and GPG keys
3.点击右边的New SSH key
4.随意填入一个title,然后 key 中粘贴刚才复制的id_rsa.pub文本,点击 Add key 这样就大功告成
5.github官网有时候会要你输入登陆密码才能添加ssh key。输入密码即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

https 和 SSH 的区别:

  1. 前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,需要先添加 SSH key ,否则无法克隆。
  2. https url 在push的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的;如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。
  3. Git协议push远程仓库不需要填写github账号密码,操作更加方便。

Idea配置使用并使用git

idea中配置Git

1.设置git.exe的安装路径
点击菜单“File->Settings->Version Control->Git”,设置Path to Git executable的值为:F:\git\Git\bin\git.exe,
在这里插入图片描述

 注1:请将上述路径“F:\git\Git\bin\git.exe”改为自己git的安装目录
 注2:点击右边的“test”按钮,应该显示成功消息及git的版本信息

2.设置Github帐号
点击菜单“Settings->Version Control->Github”
下面两种方式选择一种即可

认证方式选择密码,即Auth Type:“Password”,然后输入帐号/密码,再测试是否连接成功
在这里插入图片描述
认证方式选择令牌
打开settings

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
生成token令牌
在这里插入图片描述

idea中使用Git

1.创建本地仓库
VCS–>Import into Version Control–>Create Git Repository…
在这里插入图片描述
在这里插入图片描述
2.上传项目到本地仓库,项目右键选择Git–>add,此时项目文件变成绿色,此时文件只是处于暂存区,并没有真正进入到版本库(本地)中
在这里插入图片描述
在这里插入图片描述
3.项目右键Git–> Commit Directory,在弹窗中输入Commit Message,点击commit,此时项目文件从暂存区真正进入版本库(本地)中,项目文件变成白色
注1:在弹窗中输入Commit Message,也可以点击commit and push,会同时提交到本地库和代码托管网站
在这里插入图片描述

4.上传项目到GitHub中,VCS–>Import into Version Control–>Share Project on GitHub,在弹框中输入仓库名和描述,点击Share,即可是上传,
在这里插入图片描述
在这里插入图片描述
上传成功:
在这里插入图片描述
将远程仓库克隆到本地,成为本地仓库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Idea中的冲突解决

在这里插入图片描述
点击apply,意味着代码已经到了本地仓库;要提交到远程仓库,在做push操作;

在超大型项目会用到分支,有时间有需要再做详细了解;
创建分支命令:git branch 分支名
查看所有分支命令:git branch
切换分支命令:git checkout 分支名
合并分支到master分支上命令:
首先切换到master分支,git checkout master,然后git merge 分支名。即将创建的分支合并到master上。
删除分支命令:git branch -d 分支名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值