Github教程(1)
Git基本命令
git diff:查看工作树,暂存区,最新提交之间的差别
举例:
在README.MD中增加一行
## This is the subtitle
执行git diff 命令,查看当前工作树和暂存区的区别。
$ git diff diff --git a/README.md b/README.md index fec5601..203cf31 --- a/README.md +++ b/README.md @@ - +, @@ # Hello +## This is the subtitle
说明:"+"表示新添加的行,"-"表示删除的行,由结果可知:增加了:## This is the subtitle
执行
git add README.md
将README.md文件加入暂存区
执行git diff HEAD 可以查看暂存区和最新提交的差别。
$ git diff HEAD diff --git a/README.md b/README.md index fec5601..203cf31 --- a/README.md +++ b/README.md @@ - +, @@ # Hello +## This is the subtitle
执行
git commit –m "this is your description"
将文件提交。
git branch:显示分支列表,并标识当前所在分支
$ git branch * master
git checkout –b:创建并且切换分支
$ git checkout -b branch-a M README.md Switched to a new branch 'branch-a'
此时再运行git branch,显示当前分支为branch-a
$ git branch * branch-a Master
在branch-a这个分支操作并提交代码,代码回提交到branch-a这个分支而不会提交到master分支。
举例:
在branch –a这个分支中修改README.md文件,增加一行:## this is branch-a 并提交,
$ git diff diff --git a/README.md b/README.md index fec5601..803aa74 --- a/README.md +++ b/README.md @@ - +, @@ # Hello +## This is the subtitle + +## this is branch-a
切换至master分支
$ git checkout master Switched to branch 'master' Your branch is up-to-date with 'origin/master'.
查看master中的README.md文件,无增加行。
$ cat README.md # Hello
git merge:合并分支
首先我们切换回master分支,
$ git checkout master Switched to branch 'master' Your branch is up-to-date with 'origin/master'.
然后,合并master和branch-a这个分支
执行:
git merge --no-ff branch-a
系统提示合并之前需要输入一些描述信息,按ESC并输入 :wq退出即可,
$ git merge --no-ff branch-a Merge made by the 'recursive' strategy. README.md | +++ file changed, insertions(+)
git log:查看历史提交记录
commit 182053ec7e8683e381996c683a7b04f43be57bd3 Merge: b1444e3 2806d72 Author: zenghui <zengh927@.com> Date: Tue Dec :: + Merge branch 'branch-a' commit 2806d720ed728ca55cc32c3091879eae8c8b5b5e Author: zenghui <zengh927@.com> Date: Tue Dec :: + add branch-a commit b1444e36a2df109ce5414f5f00fd1ea97f3c1492 Author: zenghui <zengh927@.com> Date: Mon Dec :: + Add T.java File commit 0f2c6b68e711d74e35490bec6e6d8ab01e6a29d9 Author: GreyZeng <@qq.com> Date: Mon Dec :: +
git reset --hard + 哈希值:回溯到指定版本
执行:
$ git reset --hard b1444e36a2df109ce5414f5f00fd1ea97f3c1492 HEAD is now at b1444e3 Add T.java File
回溯到branch-a分支创建之前。
处理冲突
举例:
在master的README.md中增加一行:## FROM MASTER并提交
合并master和branch-a分支
$ git merge --no-ff branch-a Auto-merging README.md CONFLICT (content): Merge conflict in README.md Automatic merge failed; fix conflicts and then commit the result.
显示冲突
用编辑器打开README.md文件发现:
# Hello
<<<<<<< HEAD
## FROM MASTER
=======
## This is the subtitle
## this is branch-a
>>>>>>> branch-a
此时,只要手动修改一下文件:
# Hello
## FROM MASTER
## This is the subtitle
## this is branch-a
再次执行git add 和 git commit 即可
git push:推送至远程仓库
推送master到远程仓库:
$ git push -u origin master Counting objects: , done. Delta compression using up to threads. Compressing objects: % (/), done. Writing objects: % (/), bytes | bytes/s, done. Total (delta ), reused (delta ) To https://github.com/GreyZeng/Hello.git b1444e3..6840c0a master -> master Branch master set up to track remote branch master from origin.
也可以推送某个分支到远程仓库
比如:推送branch-a到远程仓库,需要执行以下命令:
$ git checkout branch-a Switched to branch 'branch-a' $ git push -u origin branch-a Total (delta ), reused (delta ) To https://github.com/GreyZeng/Hello.git * [new branch] branch-a -> branch-a Branch branch-a set up to track remote branch branch-a from origin.
git clone:获取远程仓库
首先我们切换到其他目录下:
执行git clone https://github.com/GreyZeng/Hello.git
$ git clone https://github.com/GreyZeng/Hello.git Cloning into 'Hello'... remote: Counting objects: , done. remote: Compressing objects: % (/), done. remote: Total (delta ), reused (delta ), pack-reused Unpacking objects: % (/), done. Checking connectivity... done.
从而获取到远程仓库
同时,我们可以从远程仓库获取之前推送的branch-a这个分支
$ git checkout -b branch-a origin/branch-a Branch branch-a set up to track remote branch branch-a from origin. Switched to a new branch 'branch-a'
git pull:获取最新的远程仓库:
假如有人在master分支上push了新的代码,本地需要同步最新代码
$ git pull origin master remote: Counting objects: , done. remote: Compressing objects: % (/), done. remote: Total (delta ), reused (delta ), pack-reused Unpacking objects: % (/), done. From https://github.com/GreyZeng/Hello * branch master -> FETCH_HEAD 6b04921..c2c9aa0 master -> origin/master Updating 6b04921..c2c9aa0 Fast-forward README.md | +- file changed, insertion(+), deletion(-)
Github教程(1)的更多相关文章
- 上传本地代码及更新代码到GitHub教程
上传本地代码及更新代码到GitHub教程 上传本地代码 第一步:去github上创建自己的Repository,创建页面如下图所示: 红框为新建的仓库的https地址 第二步: echo " ...
- 一篇文章了解Github和Git教程-AndroidStudio上传Github教程
前言 为了方便保存自己的代码,下班后可以回家继续进行,自己的码农工作,介绍一下Github. 什么是Github呢? 作为一个编程人员,我觉得得了解一下Github吧! 当然,如果你放弃了码农或者技术 ...
- git 入门教程之github 教程
github 教程 github 是一个基于 git 的代码托管平台,是平时工作学习的好帮手,学会如何用好 github 网站能够帮助我们更好分享代码或者与其他开发人员合作. 注册 github 账号 ...
- 史上最简单的 GitHub 教程
史上最简单的 GitHub 教程 温馨提示:本系列博文已经同步到 GitHub,如有需要的话,欢迎大家到「github-tutorial」进行Star和Fork操作! 1 简介 GitHub 是一个面 ...
- GitHub教程(二) 删除已有仓库
通过GitHub教程(一)的阅读,我相信您对GitHub体系框架已经有了模模糊糊的了解.本节教程将继续介绍GitHub的操作---删除仓库. 作为GitHub的入门使用者,我们可能会建一些简单的仓库来 ...
- GitHub教程(三) 本地仓库托管到GitHub
本文开头先特别声明一下:由于GitHub教程属于Git系列教程的GitHub子篇章,因此GitHub教程中将不再详细介绍Git操作命令及其用法,我会根据实际需要穿插着回顾Git操作命令.如果读者需要学 ...
- GitHub教程--上传项目四步法 GitBash命令行下使用方法
之前就用过GitHub,感觉用GitHub托管自己的代码非常不错.可是之前用的都是窗口化的TortoiseGit,省了很多命令行的操作,但是个人非常喜欢使用命令行,于是,今天就试着用了用GitBash ...
- 【Github教程】史上最全github用法:github入门到精通
原文 http://www.eoeandroid.com/thread-274556-1-1.html [初识Github] 首先让我们大家一起喊一句"Hello Github". ...
- get最简单直接粗爆git与github教程
Git是分布式版本控制系统(可以理解为文件管理拓展工具) github一个在线文件托管系统(可以理解为一个在线云盘) 准备工作,在git官网下载git软件件,安装git软件,以windows.为例,下 ...
- 【Github教程】:github入门到精通
[初识Github] 首先让我们大家一起喊一句"Hello Github".YEAH!就是这样. 原文 http://www.eoeandroid.com/thread-27455 ...
随机推荐
- 分享自己写的一个小工具RGB转十六进制(高手勿喷)
由于工作经常美工给的颜色是rgb,而我们网页里面是16进制.网上也有很多类型的工具.不过似乎都用浏览器打开.没网就不爽了 实现也很简单.代码已经共享了 http://git.oschina.net/w ...
- Fiddler高级技巧 - 映射路径到本地文件夹
适用场景: 你是前端开发人员,要开发一个小模块,需要用到线上的环境(账号.数据.跨域等),但你又没有权限往线上传文件 你是移动测试人员,需要将一组接口的返回结果替换为另一组,最简单的办法就是使用Fid ...
- 笔记 - 本地拦截genymotion或者Android模拟器的网络请求
我们在主机上面运行了Burp或者fiddler,那么代理已经监听在本机的8080端口了. 那么我们需要在模拟器中进行如下设置: 1.在设置中,长按当前连接的wifi网络,弹出如下: 2. 点击修改网络 ...
- XML 文档和数据
.NET Framework 4.5 其他版本 .NET Framework 提供了一组全面而集成的类,可用来方便地生成可以识别 XML 的应用程序. 通过以下命名空间中的类,可以分析和编写 XML, ...
- lua中常量的实现及表的深拷贝实现
废话:好久没在这里写博客了...主要原因是我买了个域名hanxi.info并在github上搭建了个人博客... lua中默认是没有c中的const常量的,在csdn上找到了一个使用setmetata ...
- Asp.net Core WebApi 支持json/xml格式的数据返回
Asp.net core 在做webapi项目的时候,默认是只返回json格式的数据的,如果想要开启xml数据返回,需要在startup里配置如下: public void ConfigureServ ...
- 【C#|.NET】lock(this)其实是个坑
这里不考虑分布式或者多台负载均衡的情况只考虑单台机器,多台服务器可以使用分布式锁.出于线程安全的原因,很多种场景大家可能看代码中看到lock的出现,尤其是在资金类的处理环节. 但是lock(this) ...
- ARCGIS10.1 GeoDatabase深入理解:客户端连接与退出地理数据库时系统表的初始化
平台软件:ARCIGS10.1 ,SQL Server2008R2 目的:了解客户端在连接arcgis 空间地理数据库后,地理数据库会做些什么样的初始化工作 准备工作: 1.准备好数据库日志文件查看工 ...
- (笔记)Linux内核学习(十)之虚拟文件系统概念
虚拟文件系统 虚拟文件系统:内核子系统VFS,VFS是内核中文件系统的抽象层,为用户空间提供文件系统相关接口: 通过虚拟文件系统,程序可以利用标准Linux文件系统调用在不同的文件系统中进行交互和操作 ...
- notepad++插件
html插件 https://github.com/downloads/davegb3/NppTidy2/Tidy2_0.2.zip