Git-balabala
想必大家都听说过且用过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内容,修改如下:
# learnGit
learning 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的更多相关文章
- [使用]Git--命令行
如何利用终端命令将文件上传到github远程服务器 (1) git status 命令查看下状态. (2) git pull 更新代码,确保代码是库上最新代码,防止覆盖其他人的提交. (3) git ...
- Git-学习笔记(常用命令集合)
这里引用一下百度百科里Git的内容: Git --- The stupid content tracker, 傻瓜内容跟踪器.Linus Torvalds 是这样给我们介绍 Git 的. Git 是用 ...
- Git版本控制教程
Git 版本控制入门 不了解Git请查看权威Git书籍 ProGit(中文版). 一份很好的 Git 入门教程,点击这里查看. Git客户端下载地址: 官方Git - TortoiseGit - So ...
- iOS-SVN、Git
版本控制SVN和Git使用详解 公司的实际开发中,在天朝使用较多的还是SVN,因为SVN是集中式的,在天朝上班你们都懂的! -----------------svn--------- ...
- 添加已有项目到git rep
cd yourproject——homegit init //在当前项目目录中生成本地git管理,建立一个隐藏.git目录 git add src //添加你想用git管理的代码的目录 git com ...
- iOS开发——开发实战篇&版本控制SVN和Git使用详解
版本控制SVN和Git使用详解 公司的实际开发中,在天朝使用较多的还是SVN,因为SVN是集中式的,在天朝上班你们都懂的! -----------------svn--------- ...
- linux Git版本控制学习与Git服务器搭建
来源地址 要随时掌握工作区的状态,使用git status命令. 如果git status告诉你有文件被修改过,用git diff可以查看修改内容. 初始化一个Git仓库,使用git init命令. ...
- git和码云的使用
什么是码云 快速入门 Git入门 码云是开源中国社区2013年推出的基于 Git 的完全免费的代码托管服务,这个服务是基于 Gitlab 开源软件所开发的,我们在 Gitlab 的基础上做了大量的改进 ...
- Redhat 6 git服务器配置 (git-daemon)
git-daemon是按照git的自己的git协议进行访问git服务 1.git-daemon软件安装 软件仓库见 redhat 6 git 服务器 配置 (http) 2.配置git dae ...
随机推荐
- k8s学习-资源管理
在云计算领域,资源可被分为计算资源.网络资源.存储资源三大类,也可被分别称作为计算云.网络云.存储云.在以容器为核心的云平台上,应用容器镜像也是一种资源. 一.计算资源管理 计算资源在云平台上主要指应 ...
- Dede织梦验证码不显示,织梦后台登陆验证码不显示解决方法
关于"织梦验证码不显示"的解决方法 "织梦验证码无法显示出来"的问题分析? 1.之前显示正常,但是换了服务器后就不能够正常显示:(这种通常是网站程序经过迁移后所 ...
- sqli-labs学习笔记 DAY5
DAY 5 sqli-labs lesson 26a 闭合符号为单引号和括号,并且不回显错误,如果服务器是Linux,尝试%a0代替空格,这里尝试使用布尔型 数据库名长度:?id=1')&&a ...
- Linux虚拟机安装教程
必备组件: vmware(程序主题) 链接:https://pan.baidu.com/s/14OplOGOQTVAnf0iDqgDhDQ 提取码:jape centos(Linux系统) 链接:ht ...
- Windows 本地文件搜索神器
Wox: Windows 本地文件搜索神器 下载地址: https://github.com/Wox-launcher/Wox 注: Wox只能搜索C盘下的文件,所以需要结合everything 如果 ...
- Centos7 zabbix 分布式监控
分布式监控 zabbix Server ===> zabbix agent (只能同一个局域网监控) 分布式监控: a. 分担压力,降低负载 b. 多机房 ...
- “Hello World!”团队第五周第六次会议
“Hello World!”团队第五周第六次会议 博客内容: 一.会议时间 二.会议地点 三.会议成员 四.会议内容 五.todo list 六.会议照片 七.燃尽图 八.checkout& ...
- Final发布用户使用报告 -- Thunder团队
Thunder爱阅app Final发布用户使用报告 用户数量:14人 以下为用户评论:(注:为了保护用户的姓名权,以下用户名以昵称形式给出.) 序列 昵称 个人信息 获得软件途径 使用次数 用户评论 ...
- 结对编程-->总结报告
项目github地址 PSP时间表格 结对编程中关于Information Hiding, Interface Design, Loose Coupling原则的使用 Information Hidi ...
- Leetcode题库——25.k个一组翻转链表
@author: ZZQ @software: PyCharm @file: ReverseList.py @time: 2018/11/6 15:13 题目要求:给出一个链表,每 k 个节点一组进行 ...