git
Claroja
这个作者很懒,什么都没留下…
展开
-
git rebase branch内部调整 调整commit顺序
git rebase -i commitIDcommitID相当于根,所以调整的是下游的commitID命令行处理1.准备数据文本内容version1version2version3version46d9da8c (HEAD -> master) version477f4597 version32c9a2d1 version28f53d32 version12.git rebase 2c9a2d1 变基到version2的commit我们想要调整version3和ve原创 2021-03-19 21:34:11 · 2145 阅读 · 0 评论 -
git log
git log --oneline --graph --all原创 2021-03-18 23:44:51 · 179 阅读 · 0 评论 -
git rebase --onto
是 git rebase upstream branch的增强,用于三个分支的切换git rebase -i --onto upstream branch childbranch可以参考官方文档原创 2021-03-18 23:44:24 · 467 阅读 · 0 评论 -
git cherry pick
直接将选定的其他分支的commit,提交到该分支上原创 2021-03-18 23:44:10 · 153 阅读 · 0 评论 -
git switch
checkout的切换分支功能,只能切换分支 不能切换到某个commitGit新命令switch和restore原创 2021-03-18 23:43:59 · 546 阅读 · 0 评论 -
git restore
checkout的暂存处工作区处理功能,确实比较容易理解一些参考:Git新命令switch和restore原创 2021-03-18 23:43:48 · 200 阅读 · 0 评论 -
git reflog
可以处理reset --hard等情况出现的detached 分支,即使reset没了,也能恢复原创 2021-03-18 23:43:08 · 207 阅读 · 0 评论 -
git branch detached
detached(游离)分支,是一种特殊的分支,1.在git checkout之前的commit之后,提交会出现2.在reset 时会出现特点:1.假如HEAD离开了deached分支,分支就是消失(可以使用reflog找回)2.在detached分支上,任意commit上都可以使用branch,这样就会将detached分支转换一个正常的分支...原创 2021-03-18 23:42:04 · 796 阅读 · 0 评论 -
git rebase 两个交叉branch换基
1 向下游移动base下游移动base,根节点是两个分支的交叉点1.初始化数据* c54f8b7 (HEAD -> b) version3 b| * f9fc6be (a) version4 a| * 730cb6a version3 a|/* 604ad92 version2 //a和b的交点,既base* 648ef5e version12.rebase 换基此时HEAD在b分支上,我们可以现在base是version2,我们可以将b分支的base改为version1~4的原创 2021-03-18 23:17:14 · 803 阅读 · 0 评论 -
git rebase基础
base是根的意思.所谓的根就是两个branch交叉点,交叉点以下是两个branch共有的.有个误区是,交叉点以下的部分只属于某一个branch.三大命令1)git rebase -i upstream [branch]upstream就是要移植到的base,可以是branch,也可以是commit id.branch是要要移植的branch,默认是HEAD所在branch2).git rebase -i --onto upstream branch childbranch1)的命令加强版原创 2021-03-18 21:43:12 · 339 阅读 · 0 评论 -
git checkout 撤销操作
参考:Git - 暂存区及撤销修改原创 2021-03-17 23:59:16 · 5356 阅读 · 1 评论 -
git revert
1.准备数据,每次提交一行2.revert 到version23.弹出冲突4.处理冲突5.跳出正常的commit处理界面git 命令操作以上操作相当于//1.指定revert的commit,HEAD~2是自身以0为起点,数三个commit(version2),然后用下一个(version1)的commit来mergegit revert HEAD~2//或者git revert 4c7907(version的id)//2.处理冲突处理冲突//3.继续git revert -原创 2021-03-17 23:57:28 · 131 阅读 · 0 评论 -
git rebase 修改提交信息
rewordpick:保留该commit(缩写:p)reword:保留该commit,但我需要修改该commit的注释(缩写:r)edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)squash:将该commit和前一个commit合并(缩写:s)fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)exec:执行shell命令(缩写:x)drop:我要丢弃该commit(缩写:d)...原创 2021-03-17 23:57:15 · 316 阅读 · 0 评论 -
git rebase 丢弃提交
droppick:保留该commit(缩写:p)reword:保留该commit,但我需要修改该commit的注释(缩写:r)edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)squash:将该commit和前一个commit合并(缩写:s)fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)exec:执行shell命令(缩写:x)drop:我要丢弃该commit(缩写:d)...原创 2021-03-17 23:57:04 · 1150 阅读 · 0 评论 -
git rebase 合并中间的提交
1.准备数据,每次提交一行2.rebase3.将version3合并到version2pick:保留该commit(缩写:p)reword:保留该commit,但我需要修改该commit的注释(缩写:r)edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)squash:将该commit和前一个commit合并(缩写:s)fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)exec:执行shell命令(缩写:x)dr原创 2021-03-17 23:56:52 · 645 阅读 · 0 评论 -
git checkout&branch 回退到某个版本进行修改
1.准备数据,每次提交一行2.返现版本version2有bug需要修改3.修复bug并提交此时如果不慎切换到其他分支(比如,checkout master)可使用git reflog,找到deteched的commit,并checkout过去,参考.4.创建新branch,来保留此次提交(不建议使用 git reflog太麻烦)1)在detached点上创建分支此时fixbug已经保存好了,这个时候就可以将这个版本发布了5.将fixbug版本,和我们最新开发的版本合并1)切回ma原创 2021-03-17 23:56:36 · 794 阅读 · 0 评论 -
git rebase 调整commit顺序
1.准备数据,每次提交一行2.rebase3.互换提交位置4.处理冲突因为version3和version2互换了位置,所以处理顺序是先提交version3,在提交version2,最后再提交version41)处理version3的提交看一下本次提交的本质:在version1上提交了version3(具体处理时,是用version3 merge version1,然后将改变提交到version1上)2)处理version2和version4的提交,最后结果version2和v原创 2021-03-17 23:56:25 · 3033 阅读 · 0 评论 -
git stash
1.准备数据,每次提交一行2.我们先在当前版本version4中修改3.保存修改此时发现version2有bug,需要跳回操作.所以先把刚才的修改保存起来(一个专门临时存放临时修改数据的地方)4.checkout version2中进行操作version2的版本checkout是将HEAD移动到某个commit,并将暂存区的内容覆盖到workspace(工作区),(此时这个commit的index(索引区)和stage(暂存区)是一致的)5.修改好后,回到最新版本version4原创 2021-03-17 23:56:13 · 223 阅读 · 0 评论 -
git rm
从 working tree和 index中删除文件(也就是说),下次再git add时,会将git rm的命令(delete)添加上去,这样就完成了在index中删除文件的效果.语法git rm [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] <file>…参数<file&g...原创 2020-02-13 21:13:01 · 173 阅读 · 0 评论 -
git
入门git 快速入门理解git 理解 HEAD^与HEAD~ git 理解 HEAD指针&branch指针 git 理解 远程分支APIgit config git init & git clone git add git commit git status git diff git reset & git checkout & git revert原创 2017-11-06 13:02:48 · 1523 阅读 · 1 评论 -
git flow
参考文献:https://blog.coding.net/blog/feature-branch-workflowhttps://www.cnblogs.com/lcngu/p/5770288.htmlhttps://www.cnblogs.com/hblflu/p/6494950.html原创 2019-04-24 20:38:01 · 137 阅读 · 0 评论 -
git 理解 节点、工作区、暂存区、版本库
git树结构:git树结构每个节点都是一个commit的快照,它包含了三个重要概念:节点,HEAD指针,Branch指针1.节点:git使用commit之后就会生成一个节点,之前的节点成为这个节点的父节点2.HEAD指针:HEAD指针可以通过 checkout方法查看任一节点3.Branch指针:一般commit都在HEAD指针指向Branch指针的时候提交(当HEAD指针只指向节点,而不...原创 2019-05-30 18:38:26 · 2058 阅读 · 0 评论 -
git 撤销修改
只修改了文件,回到当前快照的初始状态比如,我们拿到a.txt文件里面的内容为:1我们对其进行更改,内容改为:12我们想回到我们修改之前的状态,这个时候使用git reset HEAD --hard HEAD参数是本次提交的快照,--hard指版本库(HEAD指向的节点),暂存区,工作区三者都回到快照节点(HEAD所指)的状态git reset master --hard 因为HE...原创 2019-06-04 21:18:22 · 250 阅读 · 0 评论 -
git checkout
简介切换分支或者恢复工作区切换后会将工作区同步更新到树结构语法命令描述git checkout [branch]切换到分支git checkout [commit]切换到提交git checkout [path]恢复工作区...原创 2019-07-29 11:05:04 · 179 阅读 · 0 评论 -
git init
git initgit init [-q | --quiet] [--bare] [--template=<template_directory>] [--separate-git-dir <git dir>] [--shared[=<permissions>]] [directory]$ git init # 初始化本地的仓库,会生成.git文件,此时不会加入任何文件的快照原创 2017-11-06 13:49:26 · 3728 阅读 · 0 评论 -
ls-files
git-ls-files - Show information about files in the index and the working tree查看所有的跟踪的文件git ls-files [-z] [-t] [-v] (--[cached|deleted|others|ignored|stage|unmerged|killed|modified])*翻译 2018-01-16 17:49:51 · 523 阅读 · 0 评论 -
git mv
git rmgit-rm - Remove files from the working tree and from the indexgit rm [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] <file>…git rm # 从工作区和仓库索引移除文件 git rm –cached # 从仓库原创 2017-11-07 12:32:18 · 717 阅读 · 0 评论 -
git 应用 merge
1.新建一个仓库git init,并提交git commit c0是初始化的节点,c1是第一次提交的快照,指向初始化的快照。分支master指针指向最新的提交c1,星号表示HEAD指针。 2.新建一个分支fixBug并切换到这个分支上git checkout -b bugFix bugFix分支也是从c1开始 3.在bugFix上提交git commit bugFix分支指针向前移原创 2017-12-20 20:53:36 · 306 阅读 · 0 评论 -
git 应用
在当前HEAD上创建分支$ git branch testing,这里并没有改变HEAD的位置,只是新建了一个分支,而且这个testing分支和master分支的指针指向同一个快照查看各个指针指向快照的位置(HEAD指针和所有的分支指针)$ git log --oneline --decorate切换到testing分支指针上$ git checkout testing在testing分支指针上提交原创 2017-12-20 17:53:52 · 213 阅读 · 0 评论 -
git config
git config [<file-option>] [type] [--show-origin] [-z|--null] name [value [value_regex]]git config [<file-option>] [type] --add name valuegit config [<file-option>] [type] --replace-all name value [v原创 2017-11-06 12:59:40 · 561 阅读 · 0 评论 -
局域网 git服务
1.创建新用户专门来管理仓库 useradd git 2.配置免秘钥登录 Authorized_keys中添加公钥 3.在git用户中新建仓库 4.更改git-server服务器的权限,只能用git-shellvi /etc/passwdgit:x:1001:1001:,,,:/home/git:/bin/bashgit:x:1001:1001:,,,:/home/git:/usr/b原创 2017-11-30 11:04:35 · 350 阅读 · 0 评论 -
git status
git-status - Show the working tree status”Changes to be committed“已加入暂存区的,就是跟踪并,改动加入暂存区的文件 “Changed but not updated”没有加入暂存区的,就是跟踪,改动还没加入暂存区的 “Untracked files”没有被跟踪的文件git status [<options>…] [--] [<p原创 2017-11-06 16:44:39 · 359 阅读 · 0 评论 -
git add
git-add - Add file contents to the index 将本地文件添加的暂存区 (1)未跟踪的文件 (2)以跟踪,并修改的文件 (3)忽略.gitignore文件忽略的文件git add [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | -i] [--patch | -p]原创 2017-11-06 14:33:22 · 424 阅读 · 0 评论 -
git diff
git-diff - Show changes between commits, commit and working tree, etcgit diff [options] [<commit>] [--] [<path>…]git diff [options] --cached [<commit>] [--] [<path>…]git diff [options] <commit> <co原创 2017-11-07 11:19:45 · 431 阅读 · 0 评论 -
git push
git-push - Update remote refs along with associated objectsgit push [--all | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack=<git-receive-pack>] [--repo=<repositor原创 2017-11-08 12:31:43 · 326 阅读 · 0 评论 -
git fetch & pull
git fetchgit-fetch - Download objects and refs from another repository 从远程下载仓库,并建立一个origin/master的分支,此分支不可修改。fetch之后,本地修改,而远程仓库未修改则可以直接push,这个是所说的fast-forward。如果fetch之后,本地修改,而远程仓库也修改了,则需要再次fetch,然后mer原创 2017-11-08 12:18:16 · 340 阅读 · 0 评论 -
git merge
git-merge - Join two or more development histories togethergit merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit] [-s <strategy>] [-X <strategy-option>] [-S[<keyid>]] [--[no-]allow-unre原创 2017-11-08 10:30:03 · 357 阅读 · 0 评论 -
git branch
git-branch - List, create, or delete branchesgit branch [--color[=<when>] | --no-color] [-r | -a] [--list] [-v [--abbrev=<length> | --no-abbrev]] [--column[=<options>] | --no-column] [--sort=<k原创 2017-11-08 10:15:48 · 366 阅读 · 0 评论 -
git 应用 rebase
1.新建仓库git init并提交一次git commit 2.新建bugFix分支并切换到该分支上git checkout -b bugFix 3.在bugFix分支上提交一次git commit 4.切换到master分支git checkout master 5.在master分支上提交一次git commit 6.切换到bugFix分支git checkout原创 2017-12-20 21:06:30 · 262 阅读 · 0 评论 -
git 应用 branch指针和HEAD指针
1.新建如图仓库 2.使用相对位置移动bugFix指针到C0git branch -f bugFix HEAD~2 3.使用绝对位置移动master指针到C6git branch -f master C6 4.使用相对位置移动HEAD指针git checkout HEAD^ 重点是分支的移动是相对于HEAD指针的,而HEAD指针不一定和分支指针在一起参考文献: https://原创 2017-12-20 21:31:37 · 2484 阅读 · 0 评论