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的真假来控制每一层的循环的,简单来说就是就是通过给每一层循环一个单独的布尔变量 ...
随机推荐
- 关于git的学习
Git是目前世界上最先进的分布式版本控制系统(没有之一)! 由于现在用的还不多,还没有这种体会,但是前人的经验是值得借鉴的,所以我认真的学习了一些关于git的简单操作,现在在这分享一些心得,或者说是为 ...
- HDU4348 To the moon
Time Limit: 2000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64u Description Backgrou ...
- [NOIP2015] 提高组 洛谷P2661 信息传递
题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...
- centos安装163源
cd /etc/yum.repos.d/ mv CentOS-Base.repo CentOS-Base.repo.cp wget http://mirrors.163.com/.help/CentO ...
- POJ 3735 Training little cats
题意 维护一个向量, 有三种操作 将第\(i\)个数加1 将第\(i\)个数置0 交换第\(i\)个数和第\(j\)个数 Solution 矩阵乘法/快速幂 Implementation 我们将向量写 ...
- 同样有缓冲区,为什么bufferedReader输入流不需要清空缓冲区?而bufferedWriter需要清空缓冲区呢?
当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取, 如果缓冲区数据不足,才会再从文件中读取.清不清空Buf ...
- 旅图——UI测试
测试目标 保证代码质量,确保基础功能的实现,可以有效地保证代码的可靠性,让模块在与别的模块整合时出现更少的错误,减少最终测试时查找困难无方向. UI测试 登录过程 模拟登录过程,密码正确与密码错误的情 ...
- HTML中<meta>标签如何正确使用
HTML中<meta>标签如何正确使用 如果我们在浏览器中按下F12或者Ctrl+shift+J,便可以打开开发者工具,在element中即可看到<head>元素中有不少< ...
- Win7 配置Apache+PHP+Mysql环境
第一.安装并配置APACHE(安装到D:\phpapache\Apache2.2) 1.安装时默认安装,Network Domain, Server Name 我填写我的计算机名,Administra ...
- UIView UIwindow
UI:用户界面,用户能看到的各种各样的页面元素 UIview :代表屏幕上的一个矩形区域,管理界面上的内容 创建UIview 1.开辟空间并初始化视图(初始化时,给出视图位置和大小 2.对 ...