0068 Git入门的第一节课
这是 猴子都懂的Git入门 的学习笔记
Git安装与配置
下载安装Git:http://git-scm.com/
从开始菜单启动Git Bash
$ git --version
git version 2.12.2.windows.2 # 说明Git安装成功
# 下面是一些设置,这些设置都保存在C:\Users\Administrator\.gitconfig下面,如果找不到,就用everything搜索
git config --global user.name "sonng" # 设置用户名,将来变更记录中会记录,git log命令可以查看变更记录
git config --global user.email "sonng@abc.com" # 设置用户的邮箱,变更记录中也会记录
git config --global color.ui auto # 让git命令以彩色显示
git config --global alias.chkt checkout # 将checkout命令简化为chkt
git config --global core.quotepath off # 有了这个设置,在Windows命令行下,存在非ASCII字符时才能正常显示
操作本地仓库
$ cd i: # 进到I盘根目录下
$ mkdir tutorial # 创建目录
$ cd tutorial # 进入该目录
$ git init # 创建本地仓库,初始化
Initialized empty Git repository i:/tutorial
在tutorial里建立一个名为『sample.txt』的文本文件,并写入一下内容:
连猴子都懂的Git命令
$ git status # 查看状态,然后会显示下面这样。可以看到新建的sample.txt还处于untracked未索引状态
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
sample.txt
nothing added to commit but untracked files present (use "git add" to track)
$ git add sample.txt # 根据提示用add命令将该文件加入索引。加入所有文件:git add .
$ git status # 再看下状态,发现sample.txt已经被索引,下面就可以提交到仓库了
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: sample.txt
$ git commit -m "01 sample.txt第一次提交" # 提交到仓库
[master (root-commit) a00d89f] 01 sample.txt第一次提交
1 file changed, 1 insertion(+)
create mode 100644 sample.txt
$ git status # 看下状态
On branch master
nothing to commit, working tree clean # 看来提交成功了
$ git log # 看下日志
commit a00d89fc564e55e78624f2fca021db4f0d983417 # 这个常常的字符串,是用来唯一标识此次提交的
Author: sonng <sonng@qq.com> # 前面设置的用户和用户邮箱现在除了了,说明是谁提交的,联系方式是什么
Date: Thu Jun 29 08:45:45 2017 +0800
01 sample.txt第一次提交 # 前面提交时,添加的注释信息
$ gitk # 这是个图形化工具
操作远程仓库
一个软件往往是一个团队完成的,这就涉及到代码的同步
到github.com开个账户,settings里面有个Repository,建立一个远程仓库,并获得地址:https://github.com/sonng233/mastergit.git ,其中mastergit是仓库名
$ git remote add origin https://github.com/sonng233/mastergit.git
# remote命令用于添加远程仓库,origin是仓库别名,后面的url是仓库地址
# 为什么名称是origin:因为在将来pull或者push的时候,如果省略仓库名,那默认的仓库名就是origin。就是为了省事
$ git push origin master # 将本地仓库push到远程origin仓库的master分支。这里还会要求github的用户名/密码
# 然后打开github的这个仓库,可以看到跟本地相同的sample.txt
# 团队协作,自己的代码要push上去,别人也会pull你的代码下来
$ cd e:/
$ git clone https://github.com/sonng233/mastergit.git # 将远程仓库全部克隆复制下来,会要求github的用户名密码
# 查看是否有sample.txt,并查看其内容,并添加这条内容:add 把变更录入到索引中
$ git add sample.txt # 添加到索引
$ git commit -m "02 添加add说明" # 提交到本地仓库
$ git push # push到远程仓库,在克隆的仓库内,push时可以省略仓库名称和分支
# 到github网站上可以看到添加了“add 把变更录入到索引中”的sample.txt
$ cd i:/tutorial
$ git pull origin master # 将远程仓库pull拉取下来。别人修改了远程仓库,将修改后的结果拉取到本地仓库
# 可以看到tutorial仓库中的sample.txt已更新
$ git log # 通过日志查看下,可以看到2此更改记录
合并冲突的记录
多人编辑同一个文档,很容易产生冲突
在同一个文档同一个位置,自己修改了commit到本地仓库,还没有push到远程仓库
别人也修改了同一文档同一位置,并push到了远程仓库
这时候,自己push到远程仓库会被拒绝rejected,这时候就要修改本地仓库的文档
# 先制造一个冲突
# 将I盘下的tutorial中的sample.txt修改下,加入如下内容:commit 记录索引的状态
$ cd i:/tutorial # 先到 I 盘下操作
$ git add sample.txt
$ git commit -m "03 添加commit说明" # commit到本地仓库,先不push到远程仓库
$ cd e:/tutorial # 然后到 E 盘下操作。将该目录下的sample.txt修改:pull 取得远端数据库的内容
$ git add sample.txt
$ git commit -m "04 添加pull说明"
$ git push # push到远程仓库
$ cd i:/tutorial # 到 I 盘下操作
$ git push # push远程仓库。此时会失败被拒绝rejected
# 下面手动解决冲突
$ git pull origin master # 将远程仓库拉取下来,然后会显示合并时的冲突信息:Merge conflict in sample.txt
# 打开sample.txt文件,如下面所示
连猴子都懂的Git命令
add 把变更录入到索引中
<<<<<<< HEAD
commit 记录索引的状态
=======
pull 取得远端数据库的内容
>>>>>>> 4c0182374230cd6eaa93b30049ef2386264fe12a
"======"以上是本地仓库的内容,以下是远程仓库的内容
将以上冲突修改后保存,再add/commit/push
最后看下更改记录
$ git log --graph --oneline
总结
$ git add sample.txt # 添加到索引
$ git commit -m "提交说明" # 提交到本地仓库
$ git push origin master # push到远程仓库
$ git pull origin master # 从远程仓库pull下来
$ git clone https://github.com/sonng233/mastergit.git # 克隆远程仓库
$ git config --global user.name "sonng" # 设置用户名,将来变更记录中会记录,git log命令可以查看变更记录
$ git config --global user.email "sonng@abc.com" # 设置用户的邮箱,变更记录中也会记录
$ git config --global color.ui auto # 让git命令以彩色显示
$ git config --global alias.chkt checkout # 将checkout命令简化为chkt
$ git config --global core.quotepath off # 有了这个设置,在Windows命令行下,存在非ASCII字符时才能正常显示
$ git --version #
$ git init # 创建本地仓库,初始化
$ git status # 查看状态,然后会显示下面这样。可以看到新建的sample.txt还处于untracked未索引状态
$ git log # 看下日志
$ git remote add origin https://github.com/sonng233/mastergit.git # 设置远程仓库
$ git log --graph --oneline # 查看更改记录
0068 Git入门的第一节课的更多相关文章
- nodeJs入门的第一节课
nodejs是什么? nodejs的架构模式以及优缺点 nodejs异步IO nodejs事件驱动 nodejs单线程 nodejs应用场景 一.nodejs是什么? 1.1nodejs是一个开源的. ...
- [iOS]Objective-C 第一节课
Objective-C 第一节课 本节课的主要内容 创建Objective-C的第一个工程 HelloWorld Objective-C中的字符串 创建Objective-C的第一个工程 打开Xcod ...
- centos mysql 实战 第一节课 安全加固 mysql安装
centos mysql 实战 第一节课 安全加固 mysql安装 percona名字的由来=consultation 顾问+performance 性能=per con a mysql ...
- Centos安装自定义布局才能自己划分各个区的大小ctrl+z ,fg ,route -n ,cat !$ ,!cat ,XShell 设置, ifconfig CentOS远程连接 Linux中的输入流 第一节课
Centos安装自定义布局才能自己划分各个区的大小ctrl+z ,fg ,route -n ,cat !$ ,!cat ,XShell 设置, ifconfig CentOS远程连接 Linux中 ...
- Java第一节课动手动脑
在第一节课的动手动脑中,主要解决四则运算问题. 首先第一个是出30道四则运算题目,在100以内.这个问题需要控制随机数生成的范围和结果的范围在100以内就可以. 第一次改进是3点:一为避免重复,二为定 ...
- 左神算法第一节课:复杂度、排序(冒泡、选择、插入、归并)、小和问题和逆序对问题、对数器和递归(Master公式)
第一节课 复杂度 排序(冒泡.选择.插入.归并) 小和问题和逆序对问题 对数器 递归 1. 复杂度 认识时间复杂度常数时间的操作:一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数 ...
- 初学Python——第一节课
一.Python语言的特性: 1.与C语言不同,Python语言是一门解释性语言.程序在执行过程中,执行一步.编译一步. 2.Python是一个动态类型语言,不需要定义变量的数据类型. 3.Pytho ...
- JAVAWEB第一节课的课后思考
第一开发一个网站需要的一些技术 至少熟悉一种建站程序.(html,javascript等等)对空间和域名的知识有一定的了解.有一些美工基础(例如ps设计等等).对编程有一些了解.HTML的代码知识基本 ...
- springboot的第一节课
快速开始spring boot应用 官方向导搭建boot应用 地址:http://start.spring.io/ 设置项目属性: 3.解压,拷贝到工作空间,导入maven项目 4.写Controll ...
随机推荐
- 与多线程结合使用的消息处理类Handler、Message
1. 消息处理类——Handler 消息处理类(Handler)允许发送和处理Message或Runnable对象到其所在线程的MessageQueue中.Handerl有以下两个主要作用: 将Mes ...
- Linux环境MySQL集群配置
一.介绍 ======== 这篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群.并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行. 注意! 虽 然这是基于2台服务器的MySQL ...
- Linux下解决 id_rsa 权限不够
问题 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVAT ...
- SQL Server之RAID简介
一: RAID简介 RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)是一项数据保护策略. 二: RAID的几种常用级别 1. RAID 0: 通过并 ...
- jquery判断滚动条是否到底部
clientHeight:这个元素的高度,占用整个空间的高度,所以,如果一个div有滚动条,那个这个高度则是不包括滚动条没显示出来的下面部分的内容.而只是单纯的DIV的高度. offsetHeight ...
- 【Linux】shell字符串分割、数组访问、条件判断
参考资料: shell字符串分割再循环:http://www.shangxueba.com/jingyan/1633455.html linux shell中 if else以及大于.小于.等于逻辑表 ...
- C# 使用int.TryParse,Convert.ToInt32,(int)将浮点类型转换整数时的区别
int.TryParse,Convert.ToInt32,(int) 这几种类型在将浮点类型转换整数时是有差别 Convert.ToInt32则会进行四舍五入 int.TryParse只能转换整数,即 ...
- 【React】初识React
React是什么 React是如今(2015年)最热门的前端技术. 在React中.一切皆组件. A JavaScript library for building user interfaces R ...
- 删除android ScrollView边界阴影方法
XML文件中添加以下方法: android:fadingEdge=”none” 或者,代码中设置为false即可 ScrollView.setHorizontalFadingEdgeEna ...
- Struts完美解决i18n问题
所谓的i18n问题指的是(软件的)国际化问题,简单来讲就是使我们的软件可以让世界使用任何语言的人们都能使用,软件自身会根据语言环境的不同进行自动配置,如果你是中文环境那界面以中文显示,如果是英文环境就 ...