Git-balabala
来源:互联网 发布:下什么软件淘宝返钱 编辑:程序博客网 时间:2024/06/05 06:18
想必大家都听说过且用过Github(没听说过-.-),我也一直用Github管理我的代码到现在,如果你只是将其作为自己私有的代码仓库,那么平时用得最多的就是git clone, git add以及git commit命令了。自己私人用用还好,但是,涉及与他人合作开发项目时,这些命令就远远不够了。
所以,该篇博客将从三个方面深入浅出地讲解git的常用命令:
1、创建并克隆远程库;
2、修改并保存到本地版本库 && 保持本地库与远程库同步;
3、分支管理(仅列出常用命令)
当然,以上前提是,在你电脑上已经安装了Git。如果还没有安装,那么请根据你的电脑系统,采用正确的方式安装Git:
--Windows--
如果你的电脑是Windows操作系统,那么请狠狠点击这儿,来下载安装msysgit(按默认选项安装即可),俺当年就是这么在windows系统上安装git的。
安装完成后,点击鼠标邮件,会出现'Git Bash'的选项,那么恭喜你就安装成功啦,以后需要输入git命令,进入Git Bash就可以敲击相应的git命令了。
--Mac OS X--
如果你的电脑是Mac,那么可以通过homebrew来安装Git,草鸡简单,详情请狠狠点击这儿,俺现在就是这么安装的,且,以下演练都是在Mac电脑上操作的,不过Windows平台的兄弟姐妹们也不必担心,命令都一样,so,跟着来妥妥滴。
一、创建并克隆远程库众所周知,Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。大概做法就是,找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。我们完全可以从无到有地搭建一个Git服务器,但是暂时没有必要,因为有Github嘛,它的作用就是提供Git仓库托管服务的,so,如果你还没有Github去组册一个吧here。
提示:注册完了以后,建议采用ssh协议,虽然Git也支持https协议,但是https最大的麻烦就是每次推送都必须输入口令-。-!!!,在接下来的演示中都将会采取ssh协议。对于ssh是什么以及如何配置到Github上,请狠狠戳击这儿
好了,废话不多说,让我们切入正题。
现在假设以我的Github为例。
首先,我们在Github上新建一个名为learnGit的远程库,如下操作:
如上,当我们配置完这个远程库信息,点击'Create repository'后,learnGit远程库就搭建好了。是的,就是这么简单。
远程库创建完成后,我们就可以通过git clone命令克隆一个本地库了。
如,我们在Document路径下,通过git clone命令克隆learnGit远程库(默认采用SSH协议):
克隆完成后,那么就会在我们本地生成一个learnGit的本地版本库,且clone命令不仅仅是将learnGit远程库的代码克隆到本地,而且还会将这个时刻的所有分支信息链接到本地,通过git branch命令,可以查看本地所有分支信息,如下:
因为目前我们的远程learnGit库只有一个主分支master,故只显示master分支,*号代表本地库指向的那个分支。 (关于分支将在第三小结会详细介绍)
二、修改并保存到本地版本库 && 保持本地库与远程库同步通过如上操作,此时此刻我们已经拥有了learnGit本地版本库。接下来,我们就尝试着修改learnGit文件下的README内容,修改如下:
# learnGitlearning the git command and modify a little
接着,通过git status命令查看本地版本库状态:
提示中,清楚地告诉我们README.md文件已修改,且让我们用git add命令将"工作区域"变化的文件更新到staged区域,以便接下来的git commit操作;或则,如果我们想在工作区域撤销这个修改,那么我们可以通过git checkout -- <file> 这个命令来撤销。
那么, git checkout -- <file>是怎么撤销的呢?如这里的README.md文件,首先会查看staged区域是否存储着README.md文件,如果有,就将README.md文件内容恢复到这个状态,如果staged区域没有,那么就会将README.md文件撤销回本地版本库一摸一样的状态。
看到这里,估计你可能已经晕掉。我靠,能说得具体点吗?!!什么是工作区域,什么是staged区域,什么又是版本库区域呢。
先来一张图,如下:
当我们将Github上的learnGit远程库克隆到本地后,就生成了一个本地版本库master。当我们在这个本地版本库下,进行增删改文件时,其实变化都在工作区域(Working directory)。如果我们想将这些增删改的文件与本地版本库关联,那么就得先git add操作命令将这些变化放到stage里,随后才能通过git commit命令,将stage里的变动文件提交到本地版本库。
好了,我们首先通过git add命令,将工作区域修改的REDME.md文件添加到stage区域,如下:
然后,再通过git status命令查看,如下:
上图被红框框着的区域,清楚的告诉我们,如果不想将某文件放在stage区域,那么请使用git reset HEAD <file>命令,使用后就会将指定的file文件重新放回工作区域,也就不会在执行git commit命令后,将其提交到本地版本库中了。
好了,现在假设我们就是想将stage区域的变动文件统统提交到本地版本库中呢?那么就使用上面提到的git commit命令呗,如下:
然后,我们再次通过git status命令查看,如下:
图中,明确地告诉我们当前分支比远程库中的代码新,那么可以用什么方式将修改传入到远程库呢?答案也已经给出,使用git push命令。
那我们就执行下git push嘛,运行完毕后,我们去Github上看看learnGit库中的READEME文件是否成功修改,结果如下:
看来是成功了。
倘若,又有另外的伙伴作用于这个master分支,且改变了其中的代码并push了,那我们应该怎样与远程master分支保持同步呢?
git pull就可以了。它会将远程改变的代码抓取下来,合并到我们代码中。
三、分支管理.git branch
.git branch -D/-d
.git merge
.git checkout
.git fetch
.git stash
.git stash pop
四、拓展阅读[1]. Learn Git
[2]. Git教程
[3].Git分支
- Git-balabala
- balabala
- BaLaBaLa~~~
- balabala test
- monkeyrunner-balabala.....
- @com.包名balabala.....
- balabala半年了
- 又来发博客啦balabala
- "超哥与代码"之画图板balabala
- "超哥与代码"之swing包基础解析balabala
- Git-Git基础
- 解决UBUNTU下用WINE报 “CAN’T FIND MFC42.DLL….BALABALA”问题
- ubuntu下用WINE报 “CAN’T FIND MFC42.DLL….BALABALA”问题
- "超哥与代码"之I/O流基础(概念)balabala
- 多校1002 HDU-6034 Balabala Power-26进制大数加&贪心
- Git学习笔记-Basic Git
- git:cherry-pick
- git
- MySQL debug设置
- selenium+java破解极验滑动验证码
- constructor和prototype的总结
- 计蒜客 羊圈(凸包+多边形面积计算模板)
- 理解 Unity 的 Transform
- Git-balabala
- 遍历目录,把文件内容导入数据库
- 数据库日期转换为时间戳
- javascript实战演练笔记
- SQL语言共分为四大类
- mac常用的快捷操作
- [leetcode]115. Distinct Subsequences
- [第七季]7.实现DIV的其他动画效果
- 关于Hiberlate插入数据源的问题