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 ...
随机推荐
- 【Linux】Dockerfile,ubuntu默认shell不是bash?RUN source命令报错!
Dash is not bash 在一些 docker 官方 Image 中,执行一些 .sh 文件的时候遇到了一些奇怪现象,比如: 1 2 3 # Run something like: [[ $A ...
- PHP 支持简写方式
在我的Windows系统里使用的是"WAMP"集成环境 如果要让PHP支持简写方式则需要在PHP.ini里将short_open_tag 设置为on 更改php.ini文件后需要重 ...
- 免费的多数据库管理工具sqldbx个人版本
SqlDbx是一个先进的Sql编辑器和数据库对象资源管理器SqlDbx仅一个可执行的文件不需要安装 SqlDbx与SSMS对象内存占差的不是一点点,但功能与SSMS相当 优点:支持多数据库,占用内存小 ...
- public类型中internal成员
今天遇到一问题,找到下面的两篇文章,研究比较深入,特转了一下, 最近除了搞ASP.NET MVC之外,我也在思考一些编程实践方面的问题.昨天在回家路上,我忽然对一个问题产生了较为清晰的认识.或者说,原 ...
- 定义查询构建器IFeatureLayerDefinition
在宗地出图,需要实现,只显示某一户人的地块.在ArcMap里,有个定义查询,可只显示过滤后的要素. 在代码中,也比较好实现,使用IFeatureLayerDefinition接口即可. IFeatur ...
- Binwalk:后门(固件)分析利器
http://blog.csdn.net/testing_is_believing/article/details/14091179 Binwalk介绍 Binwalk是一个固件的分析工具,旨在协助研 ...
- Python 整数和浮点数运算
和数学运算不同的地方是,Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数:1 + 2 # ==> 整数 31.0 + 2.0 # ==> 浮点数 3.0 整数和浮点数混合运 ...
- Linux dig
安装dig: yum install bind-utils dig 常用命令: # dig 最基本的用法dig @server sina.com.cn. # 用 dig 查看 zone 数据传输 di ...
- Linux 监测内存常用的工具sar free vmstat
Linux 检测内存常用的工具sar free vmstat free 内存统计信息解释 total 内存总量used 内存使用的大小free 内存剩余大小shared 共享内存大小buffers 块 ...
- 【BIRT】交叉报表中出现空值设置为默认值
在使用BIRT做交叉报表的时候,往往会出现有些维度下的值是空值,例如如下报表: 那么我们可以为这些空值给出默认值,例如"-" 具体操作如下: 点击上图的[Cross Tab]后选中 ...