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 ...
随机推荐
- iOS: NSURLConnection详解
摘要: NSURLConnection是iOS网络编程中一个比较旧的类,在需要兼容低版本的系统时,NSURLConnection也是一个不错的选择. 一.引言 在iOS7后,NSURLSession基 ...
- 如何移植openwrt系统
Cisco/Linksys在2003年发布了WRT54G这款无线路由器,同年有人发现它的IOS是基于Linux的,然而Linux是基于GPL许可证发布的,按照该许可证Cisco应该把WRT54G的IO ...
- iOS 设备信息获取
參考:http://blog.csdn.net/decajes/article/details/41807977參考:http://zengrong.net/post/2152.htm1. 获取设备的 ...
- 转: SVN和Git的一些用法总结
转:http://www.codelast.com/?p=5719 转载请注明出处:http://www.codelast.com/ 以下都是比较基础的操作,高手们请绕道,不必浪费时间来看了. (A) ...
- token 机制
- ASP源代码中文乱码怎么办
ASP程序如果是UTF-8编码格式将会乱码,将其转换为ASCII码即可 如图所示
- ExplorerControls的显示问题
我们都知道ArcGIS桌面版本"添加数据"的功能是弹出一选择对话框,如下图所示,但我们总想搞自己的,以便融入自己的风格.下图左边是ArcGIS自带的"添加数据" ...
- 网站banner图片制作(简易版)
1.新建图层 根据baner需求,新建图层尺寸: 2.将图片拖进图层 按住shift对图片进行等比例缩放,将等比例缩放后的图片平铺到图层上. 3.添加文字 设置字体以及字体颜色 4.添加描边 选择文字 ...
- Learn X in Y minutes Where X=c++
http://learnxinyminutes.com/docs/c++/ C++ is a systems programming language that, according to its i ...
- 开源爬虫Labin,Nutch,Neritrix介绍和对比
crawler 开发 语言 功能 单一 支持分布式 爬取 效率 镜像 保存 Nutch Java × √ 低 × Larbin C++ √ × 高 √ Heritrix Java √ × 中 √ ** ...