git用户文档1 — git基础

1. git基础

1.1 分布式
  1. 我们把远端仓库(云端的仓库)称为repo,repo必须有一个master分支,就是主分支。
  2. repo除了有一个master分支,还有很多其他的分支,若干个分支之间存储的数据一版都是不一样的
  3. 本地可以git clone下来repo的master分支,也可以git clone下来repo的其他的分支,因为repo各个分支数据不一样,本地clone下来的数据对应的也不一样
  4. 从以上三点,我们可以理解一个问题,其实repo也可以理解成一个用户管理的一个仓库,只不过这个仓库是一个公共的仓库
  5. 本地仓库管理的时候,一般开发一个功能的时候,会创建一个分支,开发完成之后,可以先提交到本地,并做记录(git add,git commit)。我们可以选择把本地的分支上传到远程的一个分支
1.2 git配置

Linux用户首先需要安装git,centos用户一般使用yum install方式进行安装
git的配置分为两个层面,一个是配置全局的,这个配置供全部的本地仓库使用,一个是针对某一个特定的仓库所做的配置,后者的配置会覆盖前者的配置
git的配置的两种方式:通过编写配置文件和通过git config指令(git config –help查看配置帮助)

1.2.1 配置用户

如果配置好了之后,输入git log指令,我们可以看到用户,邮箱等相关信息
配置用户信息

$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"

例如

$ git config --global user.name "Neil"
$ git config --global user.email "neilzhy@163.com"

上面的指令中 –global表示配置的一个全局的选项,意思就是,这个配置对该用户的所有本地仓库都是有效的
全局的配置信息会被git保存在本地的~/.gitconfig文件中

1.2.2 配置颜色

配置git颜色之后,比如在查看本地diff的时候,会显示不同的颜色,或者查看本地branch(分支)的时候,所在的分支会高亮显示
使用下面指令进行颜色配置,下面的颜色配置基本可以满足大多数用户的需求,如果想要更多的配置,可以自行查阅

$ git config --global color.ui true
git基本命令
1.3.1 git clone

用于从克隆一个远程仓库,clone完成后,本地仓库就有了远程仓库的完整副本

1.3.2 git init

除非是新建项目,基本不使用这个指令,该指令用于初始化一个git仓库,主要是生成了git仓库的一些配置文件

1.3.3 git add/rm

将本地的修改添加到staged状态,可以这样子理解本地仓库里面有很多数据,每次修改数据之后,首先要使用git add/rm将修改的数据添加到一个等待记录区里面,等待记录区里面的数据,要经过git commit -m记录之后,才能够进入到本地仓库

1.3.4 git status

展示本地仓库的一个状态,此时会列出已经修改但是没有提交到等待记录区的文件,不属于仓库的新增的文件,还有已经存在等待记录区的文件

1.3.5 git commit

将等待记录区的文件,记录一下,保存在本地仓库,这一步的目的实际上是给每个修改做一个标记,方便快速的查找

1.3.6 git reset

一般用于修改本地git的历史文件,一般有下面几种情况
- git reset –hard ,直接抛弃新的commit和他的修改,将指针指向,慎用
- git reset –soft ,直接抛弃新的commit,但是将修改的内容,放入到了等待记录区,一般用于修改最后提交的commit
- git reset,将等待记录区所有内容全部移除,但是本地修改的文件没有改动
实例1:本地最后一个commit是做测试用的,现在已经不需要了,可以直接删除最后一个commit

git reset --hard HEAD~1

实例2:希望将本地的最后两个commit合并成一个,可以先将最后一次的放入到等待记录区,然后一起提交

git reset --soft HEAD~1 // 移除最后一个 commit,并且将修改放入 staged 区
git commit --amend --no-edit // 修改最后一个 commit(因为上一个已经删除最后一个 commit 了),并且添加 staged 中的内容
1.3.7 git branch

多人参与项目的时候,有各种分支,git branch就是用来处理分支的
git branch展示当前本地的所有分支,且高亮当前分支
git branch -a展示所有的本地分支和远程分支
git branch -m重命名分支
git branch -D删除分支

1.3.8 git checkout

一般使用git clone克隆代码之后,开发的时候一般在分支上面开发
git checkout 分支名,切换分支
git checkout -b 新的分支名,新建分支

1.3.9 git remote

使用git clone之后,本地的项目就是remote(远程),这个远程是相对于云端代码库来讲的。我们把本地的这个remote叫做origin,这就可以理解git push origin master的含义了吧,就是把本地的origin远程,推送到云端的master。我们还可以写git push origin hahah,这个hahah是云端的分支名

查看本地的remote使用

git remote
git remote -v
1.3.10 git pull/fecth/push

pull是将云端的remote和本地的分支进行merge
fetch是拉去云端的remote,但是不会和本地分支merge,而是拉去到了FETCH_HEAD
push将本地的推送到云端

1.3.11 git rebase/merge

当前用户的分支是,需要将A推送rebase到B分支上面,执行

git rebase B

rebase首先会找到A和B的共同祖先的commit,然后把A分支上面的所有修改一点点加到B上面,如果有冲突则需要解决冲突,如果没有就rebase成功了

这里的B一般代表的公共开发的分支,比如一个任务,交给了几个同学共同开发,此时会先建一个分支B,然后大家往B上面推送代码,一旦B有更新,就需要将本地A的分支,rebase到B上面

rebase之后,B最后进行commit,这样子非常清晰

但是merge不一样,merge会按照时间顺序合并两个分支,会导致合并后的内容比较混乱,一般使用rebase而不适用merge

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值