
git
choumin
这个作者很懒,什么都没留下…
展开
-
在linux上搭建本地git仓库并提供访问
如果只是想在局域网内快速搭建 git 仓库并提供访问的话,可以通过以下步骤实现。假设搭建 git 仓库的主机 ip 为:10.20.42.871)初始化本地 git 仓库$ cd /home/zhoumin/repos/$ mkdir ./demo$ cd ./demo$ git init初始化空的 Git 版本库于 /home/zhoumin/repos/demo/.git/2) 从别处clone在 10.20.42.119 上操作$ cd /root/$ git clo原创 2021-02-24 13:17:45 · 1394 阅读 · 1 评论 -
git修改已提交commit的Author信息
在 git 中可以通过 git commit --amend 来修改最近一个已提交 commit 的 Author 信息,使用如下:git commit --amend --author “xxx <xxx@abc.cn>”如果是配置问题导致的 author 信息出错,还需要修改相关配置,以避免 author 信息再次出错,参见 git学习之git config...原创 2021-02-03 09:44:17 · 4175 阅读 · 0 评论 -
git clone指定历史提交数量
我们在学习git时,可能学会的第一个命令就是git clone。随着越来越多的使用git,越发觉得它的功能非常强大,每个常用的git命令都值得我们用 git xxx --help去学习一下。我们平时在使用git clone时,可能会面临源仓库太大,而下载太慢的问题。其实,如果我们只是想学习一下其中的源码,那么可以在git clone时指定历史提交数量,这样会加快clone到本地的速度。例如,使用git clone下载github上edk2项目的源码,如果不指定历史提交数量,则需要下载 349834原创 2020-12-12 09:57:51 · 1503 阅读 · 0 评论 -
git fetch遇到Permission denied (publickey)问题
在使用git fetch时遇到下面这样的问题:$ git fetchzhoumin@abc.cn: Permission denied (publickey).fatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists.查了一下,是因为~/.ssh/id_rsa.pub里面的内容被别人更新了,以前都是再重新原创 2020-12-05 09:38:39 · 1935 阅读 · 0 评论 -
git学习之git config
git config可以查看和设置git在执行命令时的相关变量的值,下面简单梳理一下它的用法1)查看配置$ git config -l2)设置某个配置项默认是local修改,想要全局修改加上:--global$ git config section.key xxx例如:$ git config user.name zhoumin$ git config user.email zhoumin@abc.cn3)删除某个配置项:$ git config --unset原创 2020-12-05 09:24:24 · 657 阅读 · 1 评论 -
git学习之git format-patch
git format-patch可以生成patch,学习了一下,主要有以下两种用法:1) 指定某个提交$ git format-patch commit-id对从commit-id到HEAD之间的每一个提交生成patch,不包括commit-id$ git format-patch --root commit-id对从第一个提交到commit-id之间的每一个提交生成patch,包括commit-id$ git format-patch -1 commit-id对c..原创 2020-12-05 09:16:49 · 2217 阅读 · 0 评论 -
git删除远程分支
git push可以删除远程分支,主要有以下两种使用方式:方式一:$ git push remote-repository :branch-name方式二:$ git push remote-repository --delete branch-name原创 2020-12-05 09:13:31 · 128 阅读 · 0 评论 -
git学习之git revert
git revert可以撤销某个提交,它的用法很简单,基本命令是:$ git revert commit-id当遇到合并提交时会稍微麻烦一点,因为在合并提交中,有两个父节点,在撤销时需要指定父节点,即指定-m参数,该参数表示撤销哪个父节点的提交,1表示第一个父节点,2表示第二个父节点可以通过git log 或者 git show commit-id看到父节点commit-id的相对位置,例如:$ git show c7a8d32d1fcommit c7a8d32d1fcb3cbe6e19原创 2020-11-30 12:04:12 · 602 阅读 · 0 评论 -
git学习之stash
在git中可以使用git stash储藏和恢复修改过或已经暂存的被跟踪文件。基本用法1、git stash 和git stash save将新的储藏内容推入栈中。2、git stash list查看存储在栈中的储藏。3、git stash apply 和 git stash apply stash@{n}重新引用栈中的某个储藏。4、git stash apply --index文件变更可以重新应用,但是之前暂存过的文件却不会被再次暂存。该命令可以重新应用暂存过的变更。.原创 2020-11-28 00:31:48 · 647 阅读 · 0 评论 -
git合并之rebase
1、在git中整合来自不同分支的修该主要有两种方法:merge 和 rebase。1)平时用的比较多的可能是merge命令,它会把两个分支的最新快照以及二者最近的共同祖先进行三方合并,合并的结果是生成一个新的快照(并提交)。2)还有一种方法叫做 变基,你可以使用 rebase命令将提交到某一分支上的所有修改都移至另一分支上。无论是通过变基,还是通过三方合并,整合的最终结果所指向的快照始终是一样的,只不过提交历史不同罢了。变基是将一系列提交按照原有次序依次应用到另一个分支上,而合并是把最终结果合在一起。原创 2020-11-10 10:58:11 · 1652 阅读 · 0 评论 -
git commit --amend可能带来的合并冲突
有很多场景,你可能会用到git commit --amend,比如:提交之后才发现自己忘了添加某些文件, 提交之后才发现写错了提交信息, 提交之后才发现代码中有处不规范的格式问题,可以快速改一下,然后再次提交,此时你如果像我一样有点洁癖的话,你可能会使用它。然而,需要意识到的是,git commit --amend 最终只是产生了一个提交,因为第二个提交命令修正了第一个提交的结果。如果你...原创 2020-03-19 12:57:30 · 3208 阅读 · 1 评论 -
Git删除某次提交
背景Git删除某次提交是一件比较难处理的事情,尤其是在两个开发者修改了同一个文件的情况下。本文假设在两个开发者没有修改同一个文件的情况下,总结如何删除其中一个开发者所提交的内容。假设当前的提交记录是这样的:具体的提交过程是:提交序号 提交者 提交内容 commit id 第一次提交 ddzhoumin 新增a.txt文件 e3c3121e...原创 2019-11-10 19:38:34 · 7072 阅读 · 2 评论 -
git学习之git reset
先看看下面这张从《图解git》上借鉴而来的图:这张图描述了git reset、checkout、add、commit的基本用法。但在实际应用过程中,git reset和git checkout可以根据参数的不同而实现更强大的功能。下面就来梳理一下它们在带不同参数时的具体作用。功能 命令 影响范围 命令效果 检出分支 git checkout <bran...原创 2019-11-09 22:12:27 · 192 阅读 · 0 评论 -
git学习之git checkout
要切换到一个已存在的分支,需要使用git checkout命令。 假设现在我们要从master分支切换到dev分支,则可以使用git checkou dev来实现,它的内部操作主要有两部分:让HEAD指向dev分支, 将工作目录恢复成dev分支所指向的快照内容。假设切换前是如下所示的状态:则切换后会变成下面的状态问题:在master分支上对文件做了修改之后再执行git ch...原创 2019-10-19 17:16:41 · 923 阅读 · 0 评论 -
git学习之git branch
对分支的良好支持是git的一大特性。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。使用分支可以让我们方便的进行多人、多功能并行开发。git branch命令基于当前分支创建一个新分支,在git学习之基本概念及原理中,我们已知:分支是指向提交对象的可变指针,因此,新建一个分支就是创建一个指向某个提交对象的可变指针。Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一...原创 2019-10-19 15:14:50 · 234 阅读 · 0 评论 -
git学习之git diff
git diff可以根据不同的参数得到不同实体(工作目录、索引区、提交对象、文件等等)之间的差异。其中,比较基础和常用的命令是:命令 含义 git diff 展示工作目录和索引区的文件差异 git diff --cached 展示索引区和当前HEAD所指向的提交对象的文件差异 关于工作目录、暂存区、HEAD、提交对象的概念请参见gi...原创 2019-10-19 14:35:32 · 153 阅读 · 0 评论 -
git学习之git status
一般我们在使用git commit命令之前都会先使用git status命令来看看哪些已更改的文件还未被暂存,哪些已暂存的文件将会被提交?git status命令将会依次展示处于三种不同状态的文件第一种状态是:在暂存区中的内容和在当前HEAD所指向的提交对象中的内容不一致 第二种状态是:在工作目录中的内容和在暂存区中的内容不一致 第三种状态是:在当前工作目录中但未被git跟踪如下图所...原创 2019-10-19 12:44:53 · 443 阅读 · 0 评论 -
git学习之基础命令
对于git的初学者,如果只是想快速入门的话,以下几个基础命名必须要掌握:命令 含义 内部实现 git init 初始化一个空的git仓库 该命令将在当前目录下创建一个名为.git的子目录,这个子目录含有Git 仓库所必须的文件, 比如.git/objects目录,.git/refs/heads目录,.git/refs/tags目录等。 git clone u...原创 2019-10-19 12:09:32 · 120 阅读 · 0 评论 -
git学习之基本概念及原理
1、基于版本快照的数据存储Git将其所管理的数据视为一个微型文件系统的一组快照,它保存的不是文件的变化或者差异,而是一系列不同时刻的文件快照。每次提交或在Git中保存项目的状态时,Git基本上会抓取一张所有文件当前状态的快照,然后存储一个指向该快照的引用。出于效率的考虑,如果文件并没有发生变动,Git则不会再重新保存文件,而只是留下一个指向先前已保存过的相同文件的链接。Git更多的是将数据作为...原创 2019-10-19 11:02:46 · 209 阅读 · 0 评论