版本库
魔鬼_
微信:wzq657 |
github:
https://github.com/1156721874
展开
-
git(二)-git添加-删除-修改与日志
题外话: echo ‘hello world’ > test2.txt 如果此命令敲错了,想跳到开头快捷键:ctrl+A,跳到命令结尾:ctrl+E删除操作 第一种删除(git rm ): 我们新建一个test.txt文件提交到远程版本库Administrator@CeaserWang MINGW64 /e/Study/mygit (master)$ lstest.txt test2.原创 2017-06-28 23:08:02 · 2345 阅读 · 0 评论 -
git(十五) git rebase 原理深度剖析
rebase:变基,意即改变分支的根基 从某种程度来说,rebase和merge可以完成类似的工作,不过2者的工作方式有显著的差异。 我们先从merge切入看看merge和rebase的差异。 merge的2个节点origin和mywork都有公共的祖先c2: 执行merge: rebase • git checkout mywork • git rebase origin原创 2017-08-05 17:37:23 · 2148 阅读 · 0 评论 -
git(十四)-git cherry-pick
cherry-pick:现在有哦2个分支和dev和master,我们在dev下边进行了2此提交,我们这个时候发现这个2个提交不应该发生在dev分支,应该在master分支进行,于是我们把dev当前修改的内容的文件被备份到其他的地方存储,然后将dev回退到之前没有修改的状态,紧接着切换到master分支,将备份的文件覆盖master上对应的文件,完成修正,这种方法能解决问题,但是效率太低了,并且容易出原创 2017-08-05 13:37:16 · 508 阅读 · 0 评论 -
git(十三)-git subtree
git submodule弊端: 这篇文章指出了submodule的一些问题: http://www.cocoachina.com/industry/20130509/6161.html ,还有就是submodule的删除git没有直接的命令操作,需要开发者自己使用若干命令组合完成删除,因此在git的后续版本出现了subtree。subtree: 新建2个工程一个是parent,一个是sub原创 2017-08-05 11:23:17 · 863 阅读 · 0 评论 -
git(十三)-git裸库与submodule
创建裸库: girl init –bare$ git init --bareInitialized empty Git repository in E:/Study/git_bare/Administrator@CeaserWang MINGW64 /e/Study/git_bare (BARE:master)$ ll -atotal 19drwxr-xr-x 1 Administrato原创 2017-08-02 22:23:57 · 762 阅读 · 0 评论 -
git(十二)-git gc
在执行git gc之前我们看一下.git目录的一些信息: refs目录下边有三个文件夹: 此三个文件夹下边都存在一些本地、远程分支的信息,以及标签的 信息。执行git gc: 执行完毕之后,heads、remotes、tags下边的内容消失,git并不是删除了这些信息,而是存放在 .git/packed-refs文件里边,即进行了压缩。 通过里边的内容我们还可以验证带有注释标签的一原创 2017-08-02 20:47:38 · 5413 阅读 · 1 评论 -
git(十一)-git远程分支底层剖析
标签的删除: git push origin :refs/tags/v1.0 git push origin –delete tag v5.0 删除本地标签: git tag -d v1.0 标签推送的完整的写法: git push origin refs/tags/v1.0:refs/tags/v1.0单独从远程拉取某个标签: git fetch origin tag v1.0游离的原创 2017-08-01 22:54:32 · 333 阅读 · 0 评论 -
git(十)-git refspec以及远程标签
HEAD标记:HEAD文件是一个指向你当前所在分支的引用标示符,该文件内部并不包含SHA-1值,而是指向另外一个引用的指针。 当执行git commit命令时,git会创建一个commit对象,并且将这个commit对象的parent指针设置为HEAD所指向的引用的SHA-1值。 另外凡是只要修改了HEAD的git操作都会计入reflog。 实际上我们可以通过底层命令symbolic-ref来原创 2017-08-01 21:44:25 · 1640 阅读 · 0 评论 -
git(九)-git refspec以及git别名
别名: 我们在使用git命令的时候,有些命令使用的非常频繁,因此我们可以使用别名减少拼写,例如:git config --global alias.br branch 别名配置在~/.gitconfig(用户目录)里边refspec: 新建三个分支:dev、test、master: 然后切换到dev,将devpush到远程仓库出现如下问题: 原因: 表面意思是远程分支没有dev这个原创 2017-08-01 20:46:33 · 807 阅读 · 0 评论 -
git(八)-远程分支、别名、gitk与git gui
gitk 在命令模式输入gitk弹出git窗口页面; git gui 命令模式输入git gui弹出窗口页面:原创 2017-07-31 21:54:39 · 1083 阅读 · 1 评论 -
git(七)-远程与github
本地创建一个新的仓库,然后在github也创建一个新的仓库。 此时需要在本地关联github的远程仓库的url地址之后,将本地仓库提交到github。 命令: 一、https的方式 git remote add origin https://github.com/user/gitrespory.git git push -u origin master二、ssh的方式 ssh的方式需要在原创 2017-07-30 20:16:38 · 378 阅读 · 0 评论 -
git(六)-标签与diff
新建标签,标签有两种:轻量量级标签(lightweight)与带有附注标签 (annotated) • 创建⼀一个轻量量级标签 • git tag v1.0.1 • 创建⼀一个带有附注的标签 • git tag -a v1.0.2 -m ‘release version’ • 删除标签 • git tag -d tag_name操作:Administrator@CeaserWang M原创 2017-07-30 17:10:25 · 427 阅读 · 0 评论 -
git(五)-checkout进阶与stash
git checkout – test.txt原理: 作用:丢弃掉相对于暂存区最后一个添加的文件内容所做的变更。 实际操作: 范围:针对于工作区git reset HEAD test.txt作用: 将之前添加到暂存区(stage index)的内容从暂存区移除到工作区。 实际操作:$ git statusOn branch masterChanges to be committed:原创 2017-07-30 16:17:52 · 1818 阅读 · 2 评论 -
git(四)-分支进阶与版本回退
当前只有一个分支: 刚刚创建了一个dev分支: dev分支进行了修改并且提交,形成新的节点: 将分支进行合并: 这种merge是一种平fast forward的快进的方式,就是将master的指针指向dev的提交节点位置,不会产生新的提交。将dev分支删除之后: 分支 合并冲突,在第三个节点创建feature1分支,然后在feature1进行了一次提交,然后在master进行了一原创 2017-07-30 12:46:10 · 452 阅读 · 0 评论 -
git(一)-git入门,版本库初始化以及常用命令操作
初始化版本库 第一步:git的安装,到官网下载即可(https://git-scm.com/)Windows下傻瓜式安装,安装完毕会生成git shell客户端,这个客户端在Windows下是一个模拟Linux的窗口,支持大部分的Linux的命令操作: 第二部:创建一个目录,然后进入目录,将此文件夹下作为项目的root,然后执行:git init 初始化版本库: 初始化之后在文件夹下的所有操作原创 2017-06-26 22:06:11 · 710 阅读 · 0 评论 -
git(三)-分支重要操作
1、删除分支:git branch -d new_branchPS : 如果new_branch和master之间内容没有任何变化,那么使用git branch -d new_branch是可以删除成功的。 2、创建分支并且切换到新建的分支上去: git checkout -b new_branch2 3、分支合并 我们在new_branch2分支上边修改了一个文件,然后进行了提交,然后回到原创 2017-07-11 21:50:12 · 480 阅读 · 0 评论 -
git(三)-.gitignore和分支
一:.gitignore .gitignore文件的作用是界定那些文件不纳入版本库的管理,比如ide的工作文件,临时文件,等等。 另外: /*.txt表示根目录下所有txt文件被忽略,但是 子集目录不会忽略 /*/.txt:表示根目录下以及子目录的所有txt文件都被忽略二:分支原创 2017-07-10 22:21:06 · 956 阅读 · 0 评论 -
git(十六) git rebase 实战
我们新建三个分支分别是master、dev、test,之后在dev分支的test.txt文件新建2个提交,在test分支的test.txt文件新建2个提交。 切换到test分支,然后执行git rebase dev 我们要将dev分支的提交应用到test分支: 然后在test分支执行git rebase devAdministrator@CeaserWang MINGW64 /e/Study原创 2017-08-05 21:41:59 · 16459 阅读 · 0 评论