"> git用户文档1 — git基础 - 11GX
首页 > git用户文档1 — git基础

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 "[email protected]"

上面的指令中 –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

更多相关:

  • 一、 Git 常用命令速查   git branch 查看本地所有分支 git status 查看当前状态  git commit 提交  git branch -a 查看所有的分支 git branch -r 查看远程所有分支 git commit -am "init" 提交并且加注释  git remote add origi...

  • 安装githttps://www.git-scm.com/download/ 点击 安装好了之后,在开始菜单里面找到Git Bash git config --global user.name "你的github用户名" git config --global user.email “你的github邮箱” 查看是否登录账户配置成...

  • 了解Git和GitHub、虚幻引擎C++项目的版本控制等等! 你会学到: Git是如何工作的 如何从命令行使用Git 使用GitHub、GitHub桌面应用程序、Visual Studio中的Git工具和VS代码等Git工具 在虚幻引擎5和虚幻引擎4中使用Git跟踪虚幻引擎项目 在Visual Studio和Visual Stu...

  • 在 oh-my-zsh 进入 包含 git 仓库目录时,执行 ls 时会比较卡顿 原因: oh-my-zsh 要获取 git 更新信息 解决办法: 设置 oh-my-zsh 不读取文件变化信息(在 git 项目目录执行下列命令) $ git config --add oh-my-zsh.hide-dirty 1 如果还是...

  • gitlab创建项目a及一个主分支master 本地整体复制已有项目b 本地克隆gitlab上新创建的项目a(git clone gitlab地址) 将本地克隆过来的a文件夹下的.git目录拷贝到b项目下(cp -r .git …/b,注意是两个点,不是三个点,写两个点后,编辑器一直给输出三个点,晕) 删除本地克隆过来的项目a,将本地...

  • 私信我,回复:学习,获取免费学习资源包。在 2005 年的某一天,Linux 之父 Linus Torvalds 发布了他的又一个里程碑作品——Git。它的出现改变了软件开发流程,大大地提高了开发流畅度!直到现在仍十分流行,完全没有衰退的迹象。本文不是一篇 Git 入门教程,这样的文章一搜一大把,我是要从具体实践角度,尤其是在团队协作...

  • 常用术语 1. origin origin是对项目最初克隆(clone)的远程仓库的缩写。 更准确地说,origin 是用来代替原始(original)远程仓库的URL, 从而使在git 命令中使用原始仓库更加容易。 2. master master 是分支的命名约定。 从远程服务器克隆后,生成的本地存储库只有一个本地分支...

  • 开发中,发现有错误版本提交带远程分支master,怎么处理? 1 简介 最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客。 2 问题 如果提交了一个错误的版本,怎么回退版本? 如果提交了一个错误的版本到远程分支,怎么回退远程分支版本? 如果提交了一个错误的版本到公共远程分支,又该怎么回退版本? 3...

  • 文/AbnerKang(简书作者)原 文链接:http://www.jianshu.com/p/d7a7ba4f2341?utm_campaign=maleskine& utm_content=note&utm_medium=reader_share&utm_source=weixin&from=timeline&isappins...

  • 现有版本; h20, h28,h26,i8 h28,h26,i8是从H20下面创建的。 需求: 从H28下面创建新分支继续开发。 思路:       所有代码均是放置到H20上仓库当中,首先下载H20完整仓库,也就是.git文件夹当中内容,其本质是一个ZIP文件。 然后从仓库当中取出某一个分支(如H28),这就是同步到某个分支的所有代...

  • import time time.strftime("%Y%m%d %X", time.localtime()) #当前时区 time.strftime("%Y%m%d %X", time.gmtime(time.time()))#0时区 下面是format字符串的解释:   strftime(format[, tuple]) ->...