git

版本控制

  1. 本地版本控制
  2. 集中版本控制,svn(所有的版本数据都保存在服务器上,协同开发追从服务器上同步更新或上传自己的修改,多对一,多个人开发,一个服务器)缺点:历史版本都存在中心服务器上,服务器崩了,数据就丢失了
  3. 分布式版本控制,git,(所有版本信息仓库全部同步到本地的每个用户,可以在本地查看所有版本历史,可以离线在本地提交,只需要在联网的时候push到相应的服务器那里即可,不会因为服务器所坏或者网络问题,造成不能工作的情况)

 

git和svn最主要的区别

svn是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用到都是自己的电脑,所有首先要从中央服务器得到最新的版本,然后进行工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求比较高。

git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网,因为版本都在自己电脑上。协同方式:比如自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时候你们两只需要把各自的修改推送给对方,就可以互相看到对方的修改了

git是世界上最先进的分布式版本控制系统

 

 

配置个人信息

git  config --global user.name coderguan

git config --global user.email 8793112313@qq.com

查看个人配置的全局信息 git config --global -- list

查看个人的配置信息: cat ~/.gitconfig

 

git分为四个区域

  • 工作区(用开发工具打开一个项目,就可以理解为工作区),working area
  • 暂存区:工作区添加了一些文件,文件当中添加了代码,需要用 git add 把这些文件添加到跟踪信息当中
  • 本地仓库:git commit把暂存区的文件添加到本地仓库中
  • 远程仓库:实现中心化版本控制

 

基本命令

git add -A 提交所有变化

git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)

git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件

git commit

git commit -m '备注 '

git diff 检察工作区和暂存区的区别

 

远程仓库创建后的关联:(这里是没有勾选readme的操作)

git remote add origin '远程仓库地址'

git push -u origin master

 

创建本地仓库

  1. 创建全新的仓库,git init
  2. 克隆全程仓库 git clone
  3.  

文件忽略

 

 

分支

分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。

现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作

 

 列出所有分支

git branch

git branch -r  # 查看远程分支

 

 创建并切换到该分支

  • git checkout -b dev
  • git switch -c dev

 

check命令加上-b表示创建并切换,相等于以下两条命令

git branch dev

git checkout dev

 

切换分支

git  checkout master  

git switch master

 

合并分支

在新建的dev分支中修改文件后,执行add commit,再切换回master分支,会看不到之前dev修改的数据,

dev分支工作完成后,切换回master分支执行合并分支操作git merge dev,git merge命令用于合并指定分支到当前分支,

记得合并完执行add,commit

合并完可以删除分支了,git branch -d dev

 

Git鼓励大量使用分支:

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>或者git switch <name>

创建+切换分支:git checkout -b <name>或者git switch -c <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

 

创建分支并完成工作后自测,自测没问题后将新的分支推送到远程,别人拉取下来检查新的分支,确认无误合并者后将master分支和新分支合并

合并者:

git checkout -b dev origin/dev 创建本地分支dev并关联拉取远程分支dev

 

 

冲突的出现

记得使用git bash来解决

master分支修改text.txt 第三行,执行add commit ,而dev分支也修改text.txt 第三行,执行add commit ,

此时切换到主分支master,执行git merage dev,会出现冲突提醒,请先解决冲突。执行git status可以快速查看到冲突的文件

cat  xxx.txt可以查看冲突处

合并失败会提示具体的文件,通过vscode打开文件就会显示采用当前还是传入的

选择后执行git add .(或者文件名) 和commit后gitbash中的合并中状态merging就消失了

 

推送并关联:优先使用这种

本地创建分支test后,add commit后执行 git push --set-upstream origin test,会在远程自动创建并关联远程分支test,之后执行git push即可把test分支上的代码自动推送到远程分支test

 

git推送本地分支到远程分支

开分支有两种方式:

  • 一种是在远程开好分支,本地直接拉下来;
  • 一种是本地开好分支,推送到远程.

远程先开好分支然后拉到本地

git checkout -b feature-branch origin/feature-branch    //检出远程的feature-branch分支到本地

本地先开好分支然后推送到远程,冒号前后代表本地分支和远程分支

$  git checkout -b feature-branch    //创建并切换到分支feature-branch  
$  git push origin feature-branch:feature-branch    //推送本地的feature-branch(冒号前面的)分支到远程origin的feature-branch(冒号后面的)分支(没有会自动创建

 

git pull 和git fetch的区别

git pull:相当于是从远程获取最新版本并merge到本地

git fetch:相当于是从远程获取最新版本到本地,不会自动merge

 

使用码云

1.注册登录码云,完善个人信息

2.设置本机绑定ssh公钥,实现免密码登录(重要)

# 进入c:\users\Administrator\.ssh 目录

# 生成公钥,在任意位置执行以下代码,2种方式皆可

ssh-keygen

ssh-keygen -t rsa ## rsa指的是非对称加密

会生成2个文件id_rsa和id_rsa.pub, pub指的是公钥,另外一个是私钥

3.将公钥信息public key 添加到码云账户中即可!

4.使用码云创建一个自己的仓库

 

删除文件

git rm test.txt
git commit -m ''
git push (如果有关联远程仓库的话)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值