Git 分布式版本控制系统

Git是什么?

Git是目前世界上最先进的分布式版本控制系统。


目录

一、git简介

1.安装后的首次配置

2.创建版本库

3.把文件添加到版本库 

二、版本控制

1. 版本回退

2.撤销修改

3.删除文件

三、远程仓库

 1.通过SSH连接远程仓库

 2.添加远程库

3. 从远程库克隆

4.拉取和推送

5.关联多个远程库 

四、分支管理

1.创建与合并分支 

2.解决冲突 

3.分支管理策略 

五、标签管理

1.创建标签 

2.标签操作  

六、自定义Git

1.忽略特殊文件 

2.配置别名 


一、git简介

1.安装后的首次配置

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

2.创建版本库

1.创建一个空目录

2. 通过git init命令把这个目录变成Git可以管理的仓库

$ git init

3.把文件添加到版本库 

$ git add <file>
$ git commit -m <message>

 git commit命令,-m 后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录

每次修改,如果不用git add到暂存区,那就不会加入到commit中。

二、版本控制

1. 版本回退

$ git reset --hard commit id  //版本回退 可用HEAD^ 回退

$ git log  //查看提交历史,以便确定要回退到哪个版本

$ git log --pretty=oneline  //单行显示

$ git reflog  //查看命令历史,以便确定要回到未来的哪个版本

2.撤销修改

$ git status  //查看状态

$ git checkout -- file    //丢弃工作区的修改

$ git reset HEAD <file>   //撤销暂存区的修改

1.没有git add时,用git checkout -- file

2.已经git add时,先git reset HEAD <file>回退到1,再按1操作

3.已经git commit时,用git reset回退版本

4.推送到远程库?

3.删除文件

$ rm file  //删除工作区文件 手动删除效果相同

$ git rm file  //从版本库中删除该文件

$ git commit -m "move file"  //提交修改

 删除文件可用 $ git checkout -- file 恢复

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

 注意:从来没有被添加到版本库就被删除的文件,是无法恢复的!

三、远程仓库

 1.通过SSH连接远程仓库

步骤:

1.本地电脑生成ssh秘钥——公钥私钥

//打开git bash 默认目录,输入下面命令生成email的ssh秘钥
ssh-keygen -t rsa -C "youreamil"

//根据git bash 的回复的秘钥目录找到id_rsaid_rsa.pub

复制公钥 id_rsa.pub内容与git仓库设置中绑定ssh key

 2.在第三方git仓库绑定SSH秘钥——如gitee(码云) github

 2.添加远程库

$ git remote add origin git@server-name:path/repo-name.git  //关联远程仓库

$ git push -u origin master  //第一次推送到远程仓库

要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

3. 从远程库克隆

$ git clone https/ssh

4.拉取和推送

$ git push  //推送到远程库

$ git pull  //从远程库拉取

5.关联多个远程库 

git 可以同时关联多个远程库,比如同时关联 github 和 gitee ,需要进行以下配置:

$ git remote -v  //查看远程库信息  默认名为origin

$ git remote rm origin  //删除已有的远程库

$ git remote add github https/ssh  //关联GitHub的远程库

$ git remote add gitee https/ssh  //关联Gitee的远程库

$ git push github master  //推送master分支到GitHub

$ git push gitee master  //推送master分支到Gitee

四、分支管理

1.创建与合并分支 

$ git branch  //查看分支

$ git branch <name>  //创建分支

$ git branch -d <name>  //删除分支

$ git merge <name>  //合并分支

$ git checkout <name> || $ git switch <name>  //切换分支

$ git checkout -b <name> || $ git switch -c <namr>  //创建+切换分支

2.解决冲突 

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

用 git log --graph 命令可以看到分支合并图。

3.分支管理策略 

在实际开发中,我们应该按照几个基本原则进行分支管理:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

所以,团队合作的分支看起来就像这样:

Git分支十分强大,在团队开发中应该充分应用。

合并分支时,加上 --no-ff 参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

五、标签管理

1.创建标签 

$ git tag <tagname>  //新建一个标签,默认为HEAD,也可以指定一个commit id

$ git tag <tagname> <commit id>  //对指定commit新建标签

$ git tag -a <tagname> -m "describe"  //指定标签信息

$ git tag  //查看所有标签 按字母排序

$ git show <tagname>  //查看标签信息


2.标签操作  

$ git push origin <tagname>  //推送一个本地标签;

$ git push origin --tags  //推送全部未推送过的本地标签;

$ git tag -d <tagname>  //删除一个本地标签;

$ git push origin :refs/tags/<tagname>  //删除一个远程标签。

六、自定义Git

1.忽略特殊文件 

忽略某些文件时,需要编写.gitignore

.gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!

2.配置别名 

$ git config --global alias.co checkout

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值