Git基础知识(二)

前言

本篇是Git基础知识(一)的延续,由于篇幅原因,分成两篇。

我们重新建立一个文件夹,执行git init。

添加一个有三行aaaaa内容的git.txt文件,并commit。


分支

截止目前,我们都是在一个叫做master的分支上工作。Git允许我们创建分支去做一些其他的事儿,而不影响到你的master分支。

1. branch

branch命令可以查看分支、创建分支以及删除分支。

a. 查看分支

git branch

可以看到我们当前只有一个分支master,也叫主分支,*号代表当前所在的分支,这里就是matser分支。

b. 创建新的分支

git branch branch_1
git branch // 查看分支

可以看到现在除了master分支,还多了一个branch_1分支,并且这个分支完全继承了master,相当于一个copy。当前所在分支还是master。

c. 切换到branch_1

git checkout branch_1 // 使用checkout命令
git branch // 查看分支

当前所在分支已经切换到branch_1,接下来我们就可以在这个分支做一些开发工作了。

2. merge

Fast-forward合并

a. 我们在branch_1分支修改git.txt,添加一行bbbbb

添加并commit

git add git.txt
git commit -m "add bbbbb"

b. 返回master分支,合并branch_1

git checkout master
git merge branch_1 // 合并分支

此时,master分支就成功合并了branch_1分支,查看一下log,分支的commit也同样被合并进了master。

c. 这个分支的使命已经完成,删除分支

git branch -d branch_1

这种合并是无冲突的合并,称为Fast-forward。然而事情并没总那么好,下一个小节就来看下发生冲突的情况。

Conflict合并

a. 新建一个分支branch_1,切换到该分支,编辑git.txt

b. add、commit

c. 返回主分支

d. 很不幸,主分支也编辑了同一个地方。

e. add、commit

f. 尝试合并branch_1

git merge branch_1

提示有Conflict。

g. 此时文件变成酱紫了:

h. 手工修复,选择保留的内容,假设我要保留主分支编辑的内容,就删除掉其他分支编辑的内容,必须把<<<< ==== >>>>这几行也删掉,再提交就可以了。

小结

  1. 认识分支模型
  2. 几个基本命令


团队协作

目前为止,我们是个人使用git进行版本控制,然而git更牛逼的地方在于团队协作。

clone

clone命令可以克隆别人的仓库到自己的电脑本地,克隆地址可以是Url地址,也可以是本地的地址。

git clone remote_location clone_name`

我们将上诉进行版本控制的工程,即桌面上的新建文件夹,克隆一份同样到桌面,名称为clonedPrj被克隆的仓库成为远程仓库,有一个专属名称为:origin

这样我们的桌面上便会出现一个和远程仓库一模一样的clonedPrj文件夹

fetch

fetch命令可以将远程的仓库拉取到一个叫做origin/master的分支,这个分支是无法通过git branch命令看到的,然而却是存在的。然后你可以将这个分支合并到你的主分支,这样就与远程仓库保持一致了。

a. 在原本的工程添加一个git1.txt,add,commit。

b. 在克隆的工程敲如下命令:

git fetch

c. 合并origin/master分支

git merge origin/master

这样便能与远程仓库保持一致了

push

既然你已经通过clone或者fetch和merge,使你的仓库与远程仓库一致,那就意味着你准备好协作开发了。

a. 首先新建一个branch_1分支,切换到该分支。

b. 编辑git1.txt文件

c. add commit

d. 将你的分支push给远程仓库git push origin your_branch_name

git push origin branch_1

这样就将当前分支push给了远程仓库,它那边会出现一个被push的分支,至于合不合并,那就是远程仓库的事了。

协作一般流程

  1. 第一次克隆或者进行fetch、merge操作,保持与远程同步
  2. 必须创建一个新的分支
  3. 开发
  4. fetch、merge操作,再次与远程同步
  5. 将分支push给远程

小结

  1. 认识远程仓库
  2. 几个基本命令

时间: 2024-10-06 00:43:47

Git基础知识(二)的相关文章

git基础知识

本文没啥难度,基本上是我照着廖雪峰的博客敲的代码,权当做篇学习笔记. git基础知识 git diff example.txt git add example.txt git commit -m 'addby XXXX' git status git log[--pretty=online]     windows上安装git客户端,到官网下载即可. 安装完成后,在开始--> GitBash ,输入下面的内容: git config --global user.name'lirl' git co

ASP.NET Core 2.2 基础知识(二) 中间件

原文:ASP.NET Core 2.2 基础知识(二) 中间件 中间件是一种装配到应用管道以处理请求和相应的软件.每个软件都可以: 1.选择是否将请求传递到管道中的下一个组件; 2.可在调用管道中的下一个组件前后执行工作. 管道由 IApplicationBuilder 创建: 每个委托都可以在下一个委托前后执行操作,.此外,委托还可以决定不将请求传递给下一个委托,这就是对请求管道进行短路.通常需要短路,是因为这样可以避免不必要的工作.比如: 1.静态文件中间件可以返回静态文件请求并使管道的其余

Java基础知识二次学习-- 第一章 java基础

基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一章  JAVA简介 时间:2017年4月24日10:23:32 章节:01章_02节 内容:jdk的配置与安装 完成情况:已经完成,cmd中javac提示出相关命令 时间:2017年4月24日10:30:39 章节:01章_04节 内容:输出HelloWorld 完成情况: 已经完成 javac先将

Java基础知识(二)

1,字符串 new String("abc")创建了几个对象? 一个或两个,如果常量池中原来有"abc",则只创建一个对象:如果常量池中原来没有字符串"abc",那么就会创建两个对象. String s="abc"; String s1="ab"+"c"; System.out.println(s==s1); 输出 true ,因为"ab"+"c"

Powershell基础知识(二)

上一节主要介绍Powershell可发现,面向对象,一致性等特性,以及Powershell命令是基于.Net对象等重要概念,以及Powershell命令的命名规范,详细内容点击这里. 这一节的Powershell基础知识主要包含以下知识点 获取命令的摘要信息. 获取命令的帮助信息. 总结. 获取命令的摘要信息 Powershell命令 Get-Command 可检索当前shell中所有可用的命令名称.在Powershell提示符输入 Get-Command ,输出的内容类似以下内容(以下只写出输

Git 学习之Git 基础(二)

Git 基础 读完本章你就能上手使用 Git 了.本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置:开始或停止跟踪某些文件:暂存或提交某些更新.我们还会展示如何让 Git 忽略某些文件,或是名称符合特定模式的文件:如何既快且容易地撤消犯下的小错误:如何浏览项目的更新历史,查看某两次更新之间的差异:以及如何从远程仓库拉数据下来或者推数据上去. 取得项目的 Git 仓库 有两种取得 Git 项目仓库的

Git基础知识总结

?一.Git文件的三种状态: 已提交(committed):该文件已经被安全地保存在本地数据库中(git add 文件名) 已修改(modified):修改了某个文件,但没有提交保存(git status 查看当前状态) 已暂存(staged):已修改的文件放在下次提交时要保存的清单中(只要在 "Changes to be committed" 这行下面的,就说明是已暂存状态) 二.Git忽略某些文件(.gitignore): 一般我们总会有些文件纳入Git的管理,也不希望它们总出现在

计算机科学基础知识(二)Relocatable Object File

一.前言 一个合格的c程序员(也可以叫做软件工程师,这样看起来更高大上,当然,我老婆心情不好的时候总是叫我"死打字的",基本也能描述这份职业,呵呵)需要理解编译.链接和加载的过程,而不是仅仅关注c语言的语法和词法.本文主要以此为切入点,描述linux系统下,一个普通的hello world程序的生命历程,并借机灌输一些程序编译时和运行时的基本术语和概念.当然,由于我本人是一个linuxer,因此借用linux来描述这些知识会方便些,但是对于计算机科学而言,这些东西概念上是类似的,只是实

Java基础知识二次学习-- 第二章 基础语法与递归补充

第二章 基础语法与递归补充   时间:2017年4月24日10:39:18 章节:02章_01节,02章_02节 视频长度:49:21 + 15:45 内容:标识符,关键字与数据类型 心得:由字母,下划线,$,数字组成,应该由字母,下划线$开头,同时应该避开java保留字符 变量是内存中的一小块区域,使用变量名来访问这块区域 执行过程中的内存管理(疑问:这里的内存和Jvm的一样吗?) code segment 存放代码 data segment 静态变量 字符串常量 stack 栈 局部变量 h