2015年12月02日 GitHub入门学习(四)Git操作
序,学习使用Git是一项新技能,你将了解到Git与SubVersion的区别。
一、基本操作
git init
初始化仓库,请实际建立一个目录并初始化仓库,.git目录里存储着管理当前目录内容所需的仓库数据。
git status
查看仓库的状态。
git add
让文件成为Git仓库的管理对象。将文件加入暂存区(stage或者index)中,暂存区是提交之前的一个临时区域。
git commit
将暂存区中的文件实际保存到仓库的历史记录中。
git commit -m "comments"
不加-m,只输入git commit可以记录更详细的的描述信息。
格式:
第一行:用一行文字简述提交的更改内容
第二行:空行
第三行: 记录更改的原因和详细内容
好处:可以通过确认日志的命令或工具看到这些记录。
git log
查看当前分支当前状态为终点的历史日志。
git log --pretty=short 只显示提交信息的第一行
git log filename/dirtory 只显示指定目录、文件的日志
git log -p
git diff
查看工作树和最新提交的差别
git diff HEAD
二、分支的操作
git branch
将分支名列表显示,左侧标有“*”表示当前所在的分支。
git checkout -b "branch_name"
以当前的分支为基础创建新的分支。
git branch feature-A #创建feature-A分支
git checkout feature-A#将当前分支切换为feature-A
git checkout - #切换回上一个分支
git merge 合并分支
首先切换到master分支, $git checkout master
然后合并特性分支feature-A, $git merge --no-ff feature-A
合并时也许会出现冲突,解决冲突的办法就是手动去除标记,并重新执行git add 和 git commit操作
git log --graph
图形化形式显示提交日志,包括分支合并也能清楚看到
三、更改提交的操作
git reset --hard "hashvalue"
让仓库的HEAD、暂存区、当前工作树回溯到指定状态,需要用git reset --hard 目标时间点的哈希值。
git reflog
查看当前仓库执行过的操作日志,最前面的就是可以用于回溯到特定状态的哈希值。
git commit --amend
修改上一条提交信息,可以执行git commit --amend命令,修改上次提交信息,然后保存退出。
git release -i HEAD~2
更改历史提交信息,利用git release命令,可以选定当前分支中包含HEAD在内的2个最新历史记录,并在编辑器中修改,后保存。
四、推送至远程仓库
git remote add origin git@github.com:yaochuancun/helloworld.git
添加远程仓库,将远程仓库与本地仓库建立联系。执行命令后GIT会自动将远程仓库的名称设置为origin(表示符)
git push
将当前分支下本地仓库中的内容推送给远程仓库。
例子:git push -u origin master 当前在本地master分支将内容推送到远程仓库的master分支,-u 参数可以在推送的同时,将origin 的master分支与当前分支建立联系,以后运行git pull时会直接从远程仓库的分支获取内容。
例子:git push -u origin feature-d,可以推送到远程仓库中除master以外的分支。
五、从远程仓库获取
git branch -a
添加-a参数可以同时显示本地仓库和远程仓库的分支信息。
git clone ssh_address
例如:$ git clone git@github.com:yaochuancun/helloworld.git,执行git clone后默认会处于master分支下。本地master分支与远程仓库的master分支在内容上是完全相同的。
git checkout -b feature-d origin/feature-d
获取远程的feature-d分支,并且在本地建立feature-d分支,本地分支feature-d与远程分支feature-d的内容完全相同。
本地分支feature-d修改后,可以推送到远程仓库的feature-d分支,git push就可以。
git pull
从远程仓库对应分支获取最新代码
六、Git学习资料
Pro Git
LearnGitBranching
https://pcottle.github.io/learnGitBranching/
tryGit
http://try.github.io/
2015年12月02日 GitHub入门学习(四)Git操作的更多相关文章
- 2015年12月01日 GitHub入门学习(三)GitHub创建仓库
序:创建自己的GITHub账号,并创建自己第一个仓库,尝试通过msysgit客户端,往仓库提交文件. 一.创建GitHub账户 链接地址:https://github.com/join,很简单,自己创 ...
- 2015年12月01日 GitHub入门学习(二)手把手教你Git安装
序:Mac与Linux中,Mac都预装了Git,各版本的Linux也都提供了Git的软件包.下面手把手教你Windows下的安装. 一.Git Windows GUI 下载地址 msysgit htt ...
- 2015年12月01日 GitHub入门学习(一)GitHub简介
序:Github理念是Social Coding(社会化编程).octocat是它的吉祥物. 一.Github与Git的区别与联系 区别:GIT是仓库,Github是提供一种将代码提交到Git仓库的服 ...
- 2015年12月03日 GitHub入门学习(五)Markdown语法简介
Markdown一种标记语言,语法简洁,不像Word或Pages有大量排版.字体设置.常用的标记符号不超过十个.被大量写作爱好者.撰稿人.作家所青睐. 一.Markdown的优点 专注你的文字内容而不 ...
- 【C++】命令行Hangman #2015年12月15日 00:20:27
增加了可以在构造Hangman对象时通过传入参数设定“最大猜测次数”的功能.少量修改.# 2015年12月15日 00:20:22 https://github.com/shalliestera/ha ...
- 我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)
2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算 ...
- 2015年12月28日 Java基础系列(六)流
2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流
- 2015年12月13日 spring初级知识讲解(四)面向切面的Spring
2015年12月13日 具体内容待补充...
- 我的Python成长之路---第一天---Python基础(作业2:三级菜单)---2015年12月26日(雾霾)
作业二:三级菜单 三级菜单 可一次进入各个子菜单 思路: 这个题看似不难,难点在于三层循环的嵌套,我的思路就是通过flag的真假来控制每一层的循环的,简单来说就是就是通过给每一层循环一个单独的布尔变量 ...
随机推荐
- ubuntu使用备忘
今天在一个古董机子上(03年的)安装了lubuntu14.04,内存512M,奔腾处理器,好像是什么迅驰不支持linux需要的某项技术pae,安装时提示cpu不支持pae,但可以在内核参数中添加for ...
- Bzoj3663/4660 CrazyRabbit
题意:给定平面上一个圆和一堆圆外的点,要求选出尽可能多的点使得它们之间两两连线都不和圆相交.保证任意两点连线不和圆相切.点数<=2000 这题是很久以前在某张课件上看见的.看了题解还搞了三小时, ...
- python字符串格式化输出
python格式化输出 python格式化输出有两种方式:百分号和format format的功能要比百分号方式强大,其中format独有的可以自定义字符填充空白.字符串居中显示.转换二进制.整数自动 ...
- HTML5学习总结-11 IOS 控件WebView显示网页
一 加载外部网页 1.使用UIWebView加载网页 运行XCode 新建一个Single View Application . 2 添加安全消息 添加以下消息到项目的 Info.plist &l ...
- 2 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之MySql的搭建
preface 上一节我们讲了DRBD的原理,以及如何部署DRBD,那么现在在上一节的基础上部署Mysql 安装并启动Mysql 为了方便,我一般采用yum安装Mysql.命令如下: 在172.16. ...
- 在linux下如何将文件夹打包
tar tar命令可以用来压缩打包单文件.多个文件.单个目录.多个目录. 常用格式: 单个文件压缩打包 tar czvf my.tar file1 多个文件压缩打包 tar czvf my.tar f ...
- 深入理解css中的margin属性
深入理解css中的margin属性 之前我一直认为margin属性是一个非常简单的属性,但是最近做项目时遇到了一些问题,才发现margin属性还是有一些“坑”的,下面我会介绍margin的基本知识以及 ...
- 把ISO文件加载到虚拟光驱
1. 下载迅雷 2. 介绍一个下载微软产品的网站(I tell you),里面的下载程序都是破解好的罗.http://www.itellyou.cn/ 3. 在"I tell you&q ...
- Lambda表达式 和 Expression<T>
经常用的Lambda表达式 返回的是 Expression<T> 格式 public class ActivityService { private readonly List<A ...
- WinForm------GridControl控件中使用SearchLookUpEdit控件的方法
1.在数据库添加两张表,拥有主外键关系 主键表: 外键表: 2.往工具栏里拖出GridCont控件,并增加相应的列,这里对"省份"进行修改,"FileName" ...