Git
stevinhua
这个作者很懒,什么都没留下…
展开
-
Git 分支 - 分支的新建与合并
分支的新建与合并 现在让我们来看一个简单的分支与合并的例子,实际工作中大体也会用到这样的工作流程: 开发某个网站。为实现某个新的需求,创建一个分支。在这个分支上开展工作。 假设此时,你突然接到一个电话说有个很严重的问题需要紧急修补,那么可以按照下面的方式处理: 返回到原先已经发布到生产服务器上的分支。为这次紧急修补建立一个新分支,并在其中修复问题。通过测试后,回到生产服务器所在的分转载 2017-11-30 09:47:43 · 145 阅读 · 0 评论 -
Git 基础 - 打标签
打标签 同大多数 VCS 一样,Git 也可以对某一时间点上的版本打上标签。人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做。本节我们一起来学习如何列出所有可用的标签,如何新建标签,以及各种不同类型标签之间的差别。 列显已有的标签 列出现有标签的命令非常简单,直接运行 git tag 即可: $ git tag v0.1 v1.3 显示的标签按字母顺序排列,所以标签的先转载 2017-11-29 18:27:07 · 136 阅读 · 0 评论 -
Git 工具 - 交互式暂存
交互式暂存 Git提供了很多脚本来辅助某些命令行任务。这里,你将看到一些交互式命令,它们帮助你方便地构建只包含特定组合和部分文件的提交。在你修改了一大批文件然后决定将这些变更分布在几个各有侧重的提交而不是单个又大又乱的提交时,这些工具非常有用。用这种方法,你可以确保你的提交在逻辑上划分为相应的变更集,以便于供和你一起工作的开发者审阅。如果你运行git add时加上-i或者--interactiv转载 2017-11-30 09:45:49 · 229 阅读 · 0 评论 -
Git 工具 - 重写历史
重写历史 很多时候,在 Git 上工作的时候,你也许会由于某种原因想要修订你的提交历史。Git 的一个卓越之处就是它允许你在最后可能的时刻再作决定。你可以在你即将提交暂存区时决定什么文件归入哪一次提交,你可以使用 stash 命令来决定你暂时搁置的工作,你可以重写已经发生的提交以使它们看起来是另外一种样子。这个包括改变提交的次序、改变说明或者修改提交中包含的文件,将提交归并、拆分或者完全删除——转载 2017-11-30 09:46:05 · 206 阅读 · 0 评论 -
服务器上的 Git - 公共访问
公共访问 匿名的读取权限该怎么实现呢?也许除了内部私有的项目之外,你还需要托管一些开源项目。或者因为要用一些自动化的服务器来进行编译,或者有一些经常变化的服务器群组,而又不想整天生成新的 SSH 密钥 — 总之,你需要简单的匿名读取权限。 或许对小型的配置来说最简单的办法就是运行一个静态 web 服务,把它的根目录设定为 Git 仓库所在的位置,然后开启本章第一节提到的 post-update转载 2017-11-30 09:46:19 · 393 阅读 · 0 评论 -
服务器上的 Git - 在服务器上部署 Git
在服务器上部署 Git 开始架设 Git 服务器前,需要先把现有仓库导出为裸仓库 — 即一个不包含当前工作目录的仓库。做法直截了当,克隆时用 --bare 选项即可。裸仓库的目录名一般以 .git 结尾,像这样: $ git clone --bare my_project my_project.git Cloning into bare repository 'my_project.git'转载 2017-11-30 09:46:31 · 230 阅读 · 0 评论 -
服务器上的 Git - 架设服务器
架设服务器 现在我们过一边服务器端架设 SSH 访问的流程。本例将使用 authorized_keys 方法来给用户授权。我们还将假定使用类似 Ubuntu 这样的标准 Linux 发行版。首先,创建一个名为 'git' 的用户,并为其创建一个 .ssh 目录。 $ sudo adduser git $ su git $ cd $ mkdir .ssh 接下来,把开发者的 SSH 公钥添转载 2017-11-30 09:46:41 · 176 阅读 · 0 评论 -
服务器上的 Git - 生成 SSH 公钥
生成 SSH 公钥 大多数 Git 服务器都会选择使用 SSH 公钥来进行授权。系统中的每个用户都必须提供一个公钥用于授权,没有的话就要生成一个。生成公钥的过程在所有操作系统上都差不多。首先先确认一下是否已经有一个公钥了。SSH 公钥默认储存在账户的主目录下的 ~/.ssh 目录。进去看看: $ cd ~/.ssh $ ls authorized_keys2 id_dsa kn转载 2017-11-30 09:46:52 · 365 阅读 · 0 评论 -
安装 Git
安装 Git 是时候动手尝试下 Git 了,不过得先安装好它。有许多种安装方式,主要分为两种,一种是通过编译源代码来安装;另一种是使用为特定平台预编译好的安装包。 从源代码安装 若是条件允许,从源代码安装有很多好处,至少可以安装最新的版本。Git 的每个版本都在不断尝试改进用户体验,所以能通过源代码自己编译安装最新版本就再好不过了。有些 Linux 版本自带的安装包更新起来并不及时,所以除非转载 2017-11-29 17:51:22 · 203 阅读 · 0 评论 -
Git 基础 - 远程仓库的使用
远程仓库的使用 要参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库。远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写。同他人协作开发某个项目时,需要管理这些远程仓库,以便推送或拉取数据,分享各自的工作进展。管理远程仓库的工作,包括添加远程库,移除废弃的远程库,管理各式远程库分支,定义是否跟踪这些分支,等等。本节我们将详细讨论远程库的管理和使用。转载 2017-11-29 18:22:21 · 164 阅读 · 0 评论 -
Git 基础 - 撤消操作
撤消操作 任何时候,你都有可能需要撤消刚才所做的某些操作。接下来,我们会介绍一些基本的撤消操作相关的命令。请注意,有些撤销操作是不可逆的,所以请务必谨慎小心,一旦失误,就有可能丢失部分工作成果。 修改最后一次提交 有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了。想要撤消刚才的提交操作,可以使用 --amend 选项重新提交: $ git commit --amend转载 2017-11-29 18:20:35 · 337 阅读 · 0 评论 -
Git 分支 - 远程分支
远程分支 远程分支(remote branch)是对远程仓库中的分支的索引。它们是一些无法移动的本地分支;只有在 Git 进行网络交互时才会更新。远程分支就像是书签,提醒着你上次连接远程仓库时上面各分支的位置。 我们用 (远程仓库名)/(分支名) 这样的形式表示远程分支。比如我们想看看上次同 origin 仓库通讯时 master 分支的样子,就应该查看 origin/master 分支转载 2017-11-30 09:47:25 · 230 阅读 · 0 评论 -
Git 分支 - 分支的变基
分支的变基 把一个分支中的修改整合到另一个分支的办法有两种:merge 和 rebase。在本章我们会学习什么是变基,如何使用变基,为什么变基操作如此富有魅力,以及我们应该在什么情况下使用变基。 基本的变基操作 请回顾之前有关合并的一节(见图 3-27),你会看到开发进程分叉到两个不同分支,又各自提交了更新。 图 3-27. 最初分叉的提交历史。 之前介绍过,最容易的整合分支的方转载 2017-11-30 09:47:13 · 9931 阅读 · 1 评论 -
Git 分支 - 何谓分支
何谓分支 为了理解 Git 分支的实现方式,我们需要回顾一下 Git 是如何储存数据的。或许你还记得第一章的内容,Git 保存的不是文件差异或者变化量,而只是一系列文件快照。 在 Git 中提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容快照的指针,包含本次提交的作者等相关附属信息,包含零个或多个指向该提交对象的父对象指针:首次提交是没有直接祖先的,普通提交有一个祖先,由转载 2017-12-01 10:46:52 · 217 阅读 · 0 评论 -
Git 分支 - 分支的管理
分支的管理 到目前为止,你已经学会了如何创建、合并和删除分支。除此之外,我们还需要学习如何管理分支,在日后的常规工作中会经常用到下面介绍的管理命令。 git branch 命令不仅仅能创建和删除分支,如果不加任何参数,它会给出当前所有分支的清单: $ git branch iss53 * master testing 注意看 master 分支前的 * 字符:它表示当前所在的分支转载 2017-11-30 09:47:34 · 174 阅读 · 0 评论 -
初次运行 Git 前的配置
初次运行 Git 前的配置 一般在新的系统上,我们都需要先配置下自己的 Git 工作环境。配置工作只需一次,以后升级时还会沿用现在的配置。当然,如果需要,你随时可以用相同的命令修改已有的配置。 Git 提供了一个叫做 git config 的工具(译注:实际是 git-config 命令,只不过可以通过 git 加一个名字来呼叫此命令。),专门用来配置或读取相应的工作环境变量。而正是由这些环转载 2017-11-29 18:11:30 · 109 阅读 · 0 评论 -
Git 基础 - 取得项目的 Git 仓库
取得项目的 Git 仓库 有两种取得 Git 项目仓库的方法。第一种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库。第二种是从已有的 Git 仓库克隆出一个新的镜像仓库来。 在工作目录中初始化新仓库 要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行: $ git init 初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和转载 2017-11-29 18:13:31 · 117 阅读 · 0 评论 -
Git 基础 - 记录每次更新到仓库
记录每次更新到仓库 现在我们手上已经有了一个真实项目的 Git 仓库,并从这个仓库中取出了所有文件的工作拷贝。接下来,对这些文件作些修改,在完成了一个阶段的目标之后,提交本次更新到仓库。 请记住,工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪。已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或者已放入暂存区。而所转载 2017-11-29 18:17:05 · 157 阅读 · 0 评论 -
Git 基础 - 查看提交历史
查看提交历史 在提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,可以使用 git log 命令查看。 接下来的例子会用我专门用于演示的 simplegit 项目,运行下面的命令获取该项目源代码: git clone git://github.com/schacon/simplegit-progit.git 然后在此项目中运行 git log,应该会看到下面的输出: $ gi转载 2017-11-29 18:18:49 · 173 阅读 · 0 评论 -
Git-储藏(Stashing)
储藏(Stashing) 经常有这样的事情发生,当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作。问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点。解决这个问题的办法就是git stash命令。 “‘储藏”“可以获取你工作目录的中间状态——也就是你修改过的被追踪的文件和暂存的变更——并将它保存到一个未完结变更的堆栈转载 2017-11-29 17:29:17 · 208 阅读 · 0 评论