
git
ChrylZzz
博客用于记录学习
展开
-
2020-10-18
我用四个命令,总结了 Git 的所有套路我搞不明白的一个重要原因就是,命令的功能太杂,有时候一个需求可以用好几种命令解决,而且有的命令还 tm 有别名。这导致什么问题呢,我在网上找到的答案五花八门,竟然都能达成目的,难以找到规律,毫无套路可言。对于我这种不喜欢动脑子,只喜欢玩套路的人来说,简直不能接受。以前我用 Git,就知道add .,然后commit -m,最后push origin master一套带走,或者就是把 Git 作为下载器,去clone别人的项目。但是在工作中呢,和别人一起开.原创 2020-10-18 23:01:14 · 190 阅读 · 0 评论 -
理解和正确使用Merge和Rebase
作为一个有追求的开发者,我一定会选择更好的版本管理工具(Git), 使用中我们难免会在 Merge 和 Rebase 中选择其一用于合并分支。Rebase 和 merge 都是被设计用于集成你所做的改变从一个分支到另一个分支,只是通过不同的方式。虽然目的相同,但不同的方式有不同的优缺点。区别例如:我们有下面的几个commit,merge会将一些commit的组合作为一个结果,而reba...原创 2020-04-23 21:39:44 · 1965 阅读 · 0 评论 -
Git Cherry-pick (摘樱桃) 实现分支的部分提交合并到Master
何为摘樱桃:git cherry-pick 可以选择某一个分支中的一个或几个commit(s)来进行操作。一般用作 master 选择其他分支的"樱桃????"进行选择性"摘取"提交,通俗的说就是:在dev的n多次提交里面把需要上线的代码有选择的合并到master.使用场景:稳定版本分支1与开发版本分支2,不能直接把两个分支合并,否则会导致版本混乱,要将分支2中的功能合入到分支1,则可以使用...原创 2020-04-23 21:34:53 · 3957 阅读 · 2 评论 -
gitblit局域网服务器搭建
Git在版本控制方面,相比与SVN有更多的灵活性,对于开源的项目,我们可以托管到Github上面,非常方便,但是闭源的项目就会收取昂贵的费用。那么私有项目,如何用Git进行代码版本控制呢?我们可以自己构建Git服务器。一般来说,在Linux上搭建Git的教程比较多,但是如何在Windows Server平台下搭建Git服务器呢?对于很多.NET用户来说,代码编写的工具是Visual Stu...原创 2020-04-20 17:07:38 · 566 阅读 · 0 评论 -
IDEA中的Git操作,看这一篇就够了!
IDEA中的Git操作,看这一篇就够了!大家在使用Git时,都会选择一种Git客户端,在IDEA中内置了这种客户端,可以让你不需要使用Git命令就可以方便地进行操作,本文将讲述IDEA中的一些常用Git操作。环境准备使用前需要安装一个远程的Git仓库和本地的Git客户端,具体参考:10分钟搭建自己的Git仓库。 由于IDEA中的Git插件需要依赖本地Git客户端,所以需要进行如下...原创 2020-04-16 15:36:56 · 704 阅读 · 0 评论 -
10分钟搭建自己的Git仓库
10分钟搭建自己的Git仓库GitLab是一款使用MIT许可证的基于网络的Git仓库管理工具,我们可以使用它来搭建自己的Git仓库,本文将介绍如何使用Gitlab在Linux下快速搭建Git仓库。Gitlab服务端搭建在Linux(CenterOS7.6)下我们会以Docker的方式来安装Gitlab,对Docker不了解的朋友可以参考:开发者必备Docker命令。下载Gi...原创 2020-04-16 15:34:46 · 522 阅读 · 0 评论 -
使用GitHub
我们一直用GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。在GitHub出现以前,开源项目开源容易,但让广大人民群众参与进来比较困难,因为要参与,就要提交代码,而给每个想提交代码的群众都开一个账号那是不现实的,因此,群众也仅限于报个bug,即...原创 2019-06-20 09:27:06 · 150 阅读 · 0 评论 -
使用码云
使用GitHub时,国内的用户经常遇到的问题是访问速度太慢,有时候还会出现无法连接的情况(原因你懂的)。如果我们希望体验Git飞一般的速度,可以使用国内的Git托管服务——码云(gitee.com)。和GitHub相比,码云也提供免费的Git仓库。此外,还集成了代码质量检测、项目演示等功能。对于团队协作开发,码云还提供了项目管理、代码托管、文档管理的服务,5人以下小团队免费。码云的免...原创 2019-06-20 09:27:31 · 201 阅读 · 0 评论 -
自定义git-忽略特殊文件
有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files ...,有强迫症的童鞋心里肯定不爽。好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。不需要从头...原创 2019-06-21 09:54:07 · 126 阅读 · 0 评论 -
自定义git-配置别名
有没有经常敲错命令?比如git status?status这个单词真心不好记。如果敲git st就表示git status那就简单多了,当然这种偷懒的办法我们是极力赞成的。我们只需要敲一行命令,告诉Git,以后st就表示status:$ git config --global alias.st status好了,现在敲git st看看效果。当然还有别的命令可以简写,很多人都...原创 2019-06-21 09:54:16 · 154 阅读 · 0 评论 -
搭建Git服务器
在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改。GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几...原创 2019-06-21 09:54:25 · 156 阅读 · 0 评论 -
配置github的ssh密钥
(1)打开Git Bash查看电脑上是否已经存在SSH密钥:输入 cd ~/.ssh若如上图显示无法找到该文件则要创建新的ssh key;(2)创建新的ssh key:输入ssh-keygen-trsa-C "your_email@youremail.com"执行这条命令会如上图提示文件保存路径,可以直接按Enter,然后提示输入 passphrase(密...原创 2019-06-21 09:54:40 · 4388 阅读 · 0 评论 -
自定义Git
在安装Git一节中,我们已经配置了user.name和user.email,实际上,Git还有很多可配置项。比如,让Git显示颜色,会让命令输出看起来更醒目:$ git config --global color.ui true这样,Git会适当地显示不同的颜色,比如git status命令:文件名就会标上颜色。我们在后面还会介绍如何更好地配置Git,以便让你的工作更高...原创 2019-06-21 09:54:31 · 104 阅读 · 0 评论 -
在IDEA上Git的入门使用
将代码交由Git管理:首先需要配置idea的git选择要使用的版本控制系统,选择Git ——> OK完成后,IDEA下方会出现上述提示。到此,已将本项目与Git进行关联,即已将本项目交由Git管理。将代码提交到本地仓库(commit)注意要选中:此处commit为提交到本地git选择review会去查看问题,选择commit会...原创 2019-06-21 09:54:46 · 211 阅读 · 0 评论 -
git操作标签
如果标签打错了,也可以删除:$ git tag -d v0.1Deleted tag 'v0.1' (was f15b0dd)因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。如果要推送某个标签到远程,使用命令git push origin <tagname>:$ git push origin v1.0Total 0 (d...原创 2019-06-20 09:26:42 · 155 阅读 · 0 评论 -
git创建标签
在Git中打标签非常简单,首先,切换到需要打标签的分支上:$ git branch* dev master$ git checkout masterSwitched to branch 'master'然后,敲命令git tag <name>就可以打一个新标签:$ git tag v1.0可以用命令git tag查看所有标签:$ git tag...原创 2019-06-20 09:26:06 · 139 阅读 · 0 评论 -
git-Rebase
在上一节我们看到了,多人在同一个分支上协作时,很容易出现冲突。即使没有冲突,后push的童鞋不得不先pull,在本地合并,然后才能push成功。每次合并再push后,分支变成了这样:$ git log --graph --pretty=oneline --abbrev-commit* d1be385 (HEAD -> master, origin/master) init hel...原创 2019-06-20 09:25:23 · 192 阅读 · 0 评论 -
git创建仓库
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:$ mkdir learngit$ cd learngit$ pwd/Users/...原创 2019-06-19 16:54:12 · 396 阅读 · 0 评论 -
git版本回退
现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下:Git is a distributed version control system.Git is free software distributed under the GPL.然后尝试提交:$ git add readme.txt$ git commit -m ...原创 2019-06-19 16:54:55 · 272 阅读 · 0 评论 -
git工作区和暂存区
Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。先来看名词解释。工作区(Working Directory)就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:版本库(Repository)工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫inde...原创 2019-06-19 16:57:44 · 162 阅读 · 0 评论 -
git管理修改
现在,假定你已经完全掌握了暂存区的概念。下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。你会问,什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。为什么说Git管理的是修改,而不是文件呢?我们还是做实验。第一步,对...原创 2019-06-19 16:58:23 · 117 阅读 · 0 评论 -
git撤销修改(未git add和已git add的内容的内容回退)
自然,你是不会犯错的。不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行:$ cat readme.txtGit is a distributed version control system.Git is free software distributed under the GPL.Git has a mutable index called stage...原创 2019-06-19 16:59:15 · 11283 阅读 · 1 评论 -
git删除文件(rm文件之后,文件恢复)
在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交:$ git add test.txt$ git commit -m "add test.txt"[master b84166e] add test.txt 1 file changed, 1 insertion(+) create mode 100644 test.txt一般情况...原创 2019-06-19 16:59:56 · 3895 阅读 · 0 评论 -
git添加远程库(将本地git库与github空库同步)
现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库:在Repository name填入learngit,其他保持默认设置,点击“...原创 2019-06-19 17:00:42 · 151 阅读 · 0 评论 -
git从远程库克隆
上次我们讲了先有本地库,后有远程库的时候,如何关联远程库。现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。首先,登陆GitHub,创建一个新的仓库,名字叫gitskills:我们勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕后,可以看到READ...原创 2019-06-19 17:02:00 · 136 阅读 · 0 评论 -
git创建与合并分支
在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定...原创 2019-06-19 17:09:11 · 126 阅读 · 0 评论 -
git解决冲突
人生不如意之事十之八九,合并分支往往也不是一帆风顺的。准备新的feature1分支,继续我们的新分支开发:$ git checkout -b feature1Switched to a new branch 'feature1'修改readme.txt最后一行,改为:Creating a new branch is quick AND simple.在feature1...原创 2019-06-20 09:21:52 · 146 阅读 · 0 评论 -
git分支管理策略(master分支和dev分支管理策略,开发环境和稳定发布环境如何管理合并分支)
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。下面我们实战一下--no-ff方式的git merge:首先,仍然创建并切换dev分支:$ git checkout -b devSwit...原创 2019-06-20 09:22:36 · 616 阅读 · 0 评论 -
git-Bug分支
软件开发中,bug就像家常便饭一样。有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,等等,当前正在dev上进行的工作还没有提交:$ git statusOn branch devCh...原创 2019-06-20 09:23:13 · 120 阅读 · 0 评论 -
git-Feature分支
软件开发中,总有无穷无尽的新的功能要不断添加进来。添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。现在,你终于接到了一个新任务:开发代号为Vulcan的新功能,该功能计划用于下一代星际飞船。于是准备开发:$ git checkout -b fea...原创 2019-06-20 09:23:49 · 305 阅读 · 0 评论 -
git多人协作
当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。要查看远程库的信息,用git remote:$ git remoteorigin或者,用git remote -v显示更详细的信息:$ git remote -vorigin git@github.com:michaelliao/le...原创 2019-06-20 09:24:43 · 109 阅读 · 0 评论 -
git安装
最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑。不过,慢慢地有人把它移植到了Windows上。现在,Git可以在Linux、Unix、Mac和Windows这几大平台上正常运行了。要使用Git,第一步当然是安装Git了。根据你当前使用的平台来阅读下面的文字:在Linux上安装Git首先,你可以试着输入git,看看系统有没有安装Git:...原创 2019-06-19 16:52:52 · 293 阅读 · 0 评论