Git 教程 -- 基于自己学习记录

Git 教程 -- 基于自己学习记录

1. 引言

由于学校布置了一项熟悉 git 和 svn 操作的实验,所以自己重新温习了下 git,记录过程在这。

2. 注册登录 GitHub。

3. 选择一个仓库克隆到本地,这里以我自己的一个私人项目为例,克隆到本地。

git clone https://github.com/weixuqin/love_source.git   //克隆项目到本地

4. 创建dev 分支,并切换到dev分支。

git checkout -b dev     //创建dev分支
git branch      //查看当前分支

合并分支, 删除分支。

vim README.md                   //修改操作
git add README.md               //提交
git commit -m "branch test"     //提交
git checkout master             //切回master分支
git merge dev                   //合并分支
git branch -d dev               //删除dev分支
git branch                      //查看当前分支

衍合分支。

git rebase dev

合并(merge)和衍合的区别:

merge把两个分支最新的快照以及两者的共同祖先进行三方合并,合并的结果是产生一个新的提交对象。

衍合是把在一个分支里发生的变化补丁在另一个分支重新打一遍。

衍合最后生成的快照,其实和普通的三方合并的快照内容一模一样。虽然最后整合得到的结果没有任何区别,

但是衍合能产生一个更为整洁的提交历史。如果观察一个衍合过的分支的历史记录,看起来会更清楚:仿佛所有修改都是在一跟线上先后进行的,尽管实际上他们原本是同时并行发生的。

5. 撤销操作。

回退到上一个版本

reset 用法:

git reset --hard HEAD^

revert 用法:

git revert HEAD

git revert 和 git reset的区别

  1. git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
  2. 在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。
  3. git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。

丢弃工作区的修改:

我们在已经提交的test.txt文件中添加一句话:

真是愚蠢!

使用 git checkout -- test.txt 撤销这句话的内容。

撤销暂存区的修改:

我们在已经提交的test.txt文件中添加一句话:

真是愚蠢!

并将test.txt文件add到暂存区。

使用 git reset HEAD test.txt 将test.txt,重新放回工作区。

6. git标签管理。

创建标签:git tag <name>

git tag 查看所有标签。

删除标签:git tag -d <tagname>

7. git fetch 和 push 用法。

fetch是将远程分支下载下来,但不会进行合并,

push是将本地分支上传到远程分支。

这里只进行fetch的演示,因为远程的git仓库我不想修改。

8. Git打补丁。

Git 提供了两种补丁方案,一是用 git diff 生成的UNIX标准补丁 .diff 文件,二是 git format-patch 生成的 Git 专用 .patch 文件。
.diff 文件只是记录文件改变的内容,不带有 commit 记录信息,多个 commit 可以合并成一个 .diff文件。
.patch 文件带有记录文件改变的内容,也带有 commit 记录信息,每个 commit 对应一个 .patch 文件。

a. 创建patch 文件的常用命令行。

某次提交(含)之前的几次提交:

git format-patch [commit sha1 id]-n     //n指从sha1 id对应的commit开始算起n个提交。

某两次提交之间的所有patch:

git format-patch [commit sha1 id]..[commit sha1 id]

b. 创建diff文件的常用方法。

git diff  [commit sha1 id] [commit sha1 id] >  [diff文件名]

原文地址:https://www.cnblogs.com/weixuqin/p/10647952.html

时间: 2024-10-11 12:04:53

Git 教程 -- 基于自己学习记录的相关文章

SVN教程 -- 基于自己学习记录

SVN教程 -- 基于自己学习记录 1. 概述 a. 什么是SVN? Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统.相较于 git ,svn 是集中式版本控制系统. SVN官网链接 b. 什么是集中式版本控制系统? 集中式版本控制系统可以这样理解:所有的源代码都放在统一的服务器上,开发者从服务器下载项目组的最新代码,进入自己的分支进行开发工作,提交代码,最后再把自己的分支合并到服务器主分支上,更新服务器源代码.由于源代码最后都是放在服务器上的,服务器统

Jquery基础教程第二版学习记录

本文仅为个人jquery基础的学习,简单的记录以备忘. 在线手册:http://www.php100.com/manual/jquery/第一章:jquery入门基础jquery知识:jquery能做什么:为什么需要jquery. 第二章:选择符工厂函数$()css选择符属性选择符自定义选择符DOM遍历方法 第三章:事件jQuery.noConflict([extreme]):运行这个函数将变量$的控制权让渡给第一个实现它的那个库.常用方法:(包括键盘,鼠标事件)blur([[data],fn]

xcode6 cocos2dx玩转git和github之学习记录

1. git Xcode4开始,就已经将Git作为内置的源代码控制(Source Control)工具了,所以为新建的项目使用git来管理是很方便的.在新建项目向导中,可以直接选择Git作为源代码控制工具,完成项目新建向导后,就在本地项目目下新建了一个仓库. 2. 如何为已存在的项目增加git (1)通过控制台进入项目所在目录,输入如下命令 <span style="font-size:18px;">git init </span> (2)如果你的项目存在不想提

学习廖雪峰的Git教程4--继续学习分支管理

查看分支 git branch -a 查看远程分支 git branch 查看本地分支 创建分支 git checkout -b branch-name 在远程创建一个属于自己的分支 删除分支 git checkout -d branch-name 与远程分析相关联 git checkout -b branch-name origin/branch-name 在本地创建一个跟远程对应的分支 git branch --set-upstream branch-name origin/branch-n

面向对象与基于对象 学习记录 thread举例

// 1.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include <windows.h> using namespace std; class CThread{ public: CThread(); virtual ~CThread(); bool Start(); void Join(); static DWORD WINAPI ThreadProc( LPVOID lp

git忽略提交 .gitignore学习记录

.gitignore 文件格式 原文地址:https://www.cnblogs.com/yunian139/p/11254540.html

廖雪峰Git教程学习笔记(一)

作者及其背景:仔姜,大三学生,幼儿园英语水平,熟系Linux文件基本操作(最基础的) 文章内容或许有些疏漏之处还望各位大佬见谅,如果构成侵权或出现其他问题,请联系我邮箱:[email protected],如果需要更全的知识请移步廖老师Git教程 学习内容来源:廖雪峰Git教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 感谢廖雪峰老师提供的教程 正文开始: Git简介 什

Git教程学习(二)

教程来自: Git教程(廖雪峰的官方网站) 主要命令: $ git log #查看已提交内容 $ git log --pretty=oneline #查看已提交内容(紧凑版) $ git reset --hard HEAD^ #回退到上一版本 $ git reset --hard 3628164 #回退到版本3628164 $ git reflog #查看提交过的命令 5. 版本回退 5.1 repo会记录每次提交的版本,用户也可以随时回退到任何版本.比如以下三个readme.txt版本 版本1

git常用命令,参照廖雪峰老师的git教程

git的常用命令 写在开篇: 作为一个菜鸟,我想学习的最好的方式就是边学边记笔记,这里只是本人写的自己通过学习了廖雪峰老师的git教程之后自己做的笔记,个人理解,可能有失偏颇,如想学习更专业更权威的git知识,请移步廖雪峰老师的官网 一.创建git仓库 1.git init  在本地创建一个空的仓库 2.在远程创建一个项目仓库,gitHub内操作 git remote add origin ***** 通过这两个步骤,就将本地仓库与远程仓库关联起来,然后在本地coding,提交代码到远程.也可以