git/github运用
了解git和svn很久了,但是一直没有拿来做过版本控制管理,虽然svn有用到过,但是觉得还是运用git的比较多吧,尤其github。
Git术语
| 术语 | 定义 |
|---|---|
| 仓库 | 一个仓库包括了所有的版本信息、所有的分支和标记信息. |
| Repository | 在Git中仓库的每份拷贝都是完整的。仓库让你可以从中 |
| 取得你的工作副本。 | |
| 一个分支意味着一个独立的、拥有自己历史信息的代码线 | |
| 分支 | (code line)。你可以从已有的代码中生成一个新的分支 |
| Branches | ,这个分支与剩余的分支完全独立。默认的分支往往是叫 |
| master。用户可以选择一个分支,选择一个分支叫做 | |
| checkout. | |
| 标记 | 一个标记指的是某个分支某个特定时间点的状态。通过标 |
| Tags | 记,可以很方便的切换到标记时的状态,例如2014年8月25 |
| 号在testing分支上的代码状态 | |
| 提交 | 提交代码后,仓库会创建一个新的版本。这个版本可以在 |
| Commit | 后续被重新获得。每次提交都包括作者和提交者,作者和 |
| 提交者可以是不同的人 | |
| URL | URl用来标识一个仓库的位置 |
| 用来表示代码的一个版本状态。Git通过用SHA1 hash算法 | |
| 修订 | 表示的id来标识不同的版本。每一个 SHA1 id都是160位长 |
| Revision | ,16进制标识的字符串.最新的版本可以通过HEAD来获取. |
| 之前的版本可以通过"HEAD~1"来获取,以此类推。 |
索引
Git 需要将代码的变化显示的与下一次提交进行关联。举个例子,如果你对一个文件继续了修改,然后想将这些修改提交到下一次提交中,你必须将这个文件提交到索引中,通过git add file命令。这样索引可以保存所有变化的快照。
新增的文件总是要显示的添加到索引中来。对于那些之前已经提交过的文件,可以在commit命令中使用-a 选项达到提交到索引的目的。
Git安装
在Ubuntu上,可以通过apt来安装git命令行工具
sudo apt-get install git-core
Git配置
你可以在.gitconfig文件中防止git的全局配置。文件位于用户的home目录。上述已经提到每次提交都会保存作者和提交者的信息,这些信息都可以保存在全局配置中。后续将会介绍配置用户信息、高亮显示和忽略特定的文件。
用户信息
通过如下命令来配置用户名和Email
git config --global user.name "Example Surname" git config --global user.email "your.email@gmail.com"
# Set default so that all changes are always pushed to the repository
git config --global push.default "matching"
获取Git配置信息,执行以下命令:
git config --list
- 高亮显示
git config --global color.status auto
git config --global color.branch auto
忽略特定的文件
可以配置Git忽略特定的文件或者是文件夹。这些配置都放在.gitignore文件中。这个文件可以存在于不同的文件夹中,可以包含不同的文件匹配模式。为了让Git忽略bin文件夹,在主目录下放置.gitignore文件,其中内容为bin。
同时Git也提供了全局的配置,core.excludesfile。
使用.gitkeep来追踪空的文件夹
Git会忽略空的文件夹。如果你想版本控制包括空文件夹,根据惯例会在空文件夹下放置.gitkeep文件。其实对文件名没有特定的要求。一旦一个空文件夹下有文件后,这个文件夹就会在版本控制范围内。
github操作
- 获得密钥
ssh-keygen -t rsa -C "xxx@mail.com"
- 登陆github系统
点击右上角的 Account Settings--->SSH Public keys ---> add another public keys
把你本地生成的密钥(~/.ssh/id_rsa.pub文件中)复制到里面(key文本框中), 点击 add key 就ok了
- 接着打开git ,测试连接是否成功
ssh -T git@github.com
如果提示:Hi defnngj You've successfully authenticated, but GitHub does not provide shell access. 说明你连接成功了
- github上创建立一个项目
击页面右下角“New Repository”
填写项目信息,点击“Create Repository” ; 现在完成了一个项目在github上的创建。
- 克隆github上新创建的项目
git clone git@github.com:xxxx/xxxxx-demo.git
//git clone git@github.com:用户名/项目名字.git
- 提交修改
git add .
git commit –m ”new files”
git push
#或者
git remote add origin git@github.com:xxxx/xxxx-demo.git
- 更新版本
git fetch origin
//取得远程更新,这里可以看做是准备要取了
git merge origin/master
//把更新的内容合并到本地分支/master
- 简单常用命令
git remote -v
//查看你当前项目远程连接的是哪个仓库地址。
git status
//查看当前项目下所有文的状态,
- 远程项目与本地项目联系起来
git remote add origin git@github.com:xxxx/xxxx-demo.git
我是天王盖地虎的分割线
git/github运用的更多相关文章
- git &github 快速入门
本节内容 github介绍 安装 仓库创建& 提交代码 代码回滚 工作区和暂存区 撤销修改 删除操作 远程仓库 分支管理 多人协作 github使用 忽略特殊文件.gitignore 1.gi ...
- git+github上传与管理
1.首先下载并安装git,方便管理github上的代码 https://git-scm.com/downloads 2.然后点击安装好的git bash(注册好自己的github) git confi ...
- git/github学习笔记
郑重提示,本文来自这里,如果喜欢,请关注原作者. 1. git 版本控制系统 相比CVS\SVN优势: - 支持离线开发,离线Repository- 强大的分支功能,适合多个独立开发者协作- 速度块 ...
- Git/GitHub 初用体验与总结
Git,一个神奇而又陌生的东西,居然到现在才去了解它,就像有一位仁兄说的,现在不会用Git真的都不好意思说自己搞IT的. 简单的讲,这Git是目前最先进的分布式版本控制系统,和他相对应的就是众所周知的 ...
- git github简单知识
Git 常用命令 git init here -- 创建本地仓库(repository),将会在文件夹下创建一个 .git 文件夹,.git 文件夹里存储了所有的版本信息.标记等内容 git remo ...
- Git/Github + TortoiseGit 使用教程
前言 Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 在github上有很多优秀的项目,一个伟大的学习宝库.本文分享使用tortoisegit对github/ ...
- Git+GitHub 使用小结
1.Git安装完成后需要做的配置 $ git config --global user.name "Your Name" $ git confi ...
- Git & Github 一页简明笔记
由于小组工程需要使用git&github的版本控制来协作,但我对其使用并不熟悉,特此写篇一页的笔记放在手边,备随时查阅. 相信这种一页的简明笔记,对大家也是有帮助的.我的笔记总结自廖雪峰的Gi ...
- git/github初级运用自如(zz)
----//git/github环境配置 一 . github上创建立一个项目 用户登录后系统,在github首页,点击页面右下角“New Repository” 填写项目信息: project n ...
- git/github 使用
原文:http://www.cnblogs.com/fnng/archive/2011/08/25/2153807.html git/github学习笔记 Posted on 2011-08-25 2 ...
随机推荐
- HDU 3183.A Magic Lamp-区间找最小值-RMQ(ST)
A Magic Lamp Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- 《java虚拟机》----类加载机制
No1: 实现语言无关性的基础仍然是虚拟机和字节码存储格式,虚拟机只与Class文件这种特定的二进制文件格式所关联,并不关心Class的来源是何种语言. No2: Class文件是一组以8位字节为基础 ...
- 洛谷P1503 鬼子进村 [平衡树,STL]
题目传送门 鬼子进村 题目背景 小卡正在新家的客厅中看电视.电视里正在播放放了千八百次依旧重播的<亮剑>,剧中李云龙带领的独立团在一个县城遇到了一个鬼子小队,于是独立团与鬼子展开游击战. ...
- Docker应用系列(二)| 构建Zookeeper集群
本示例基于Centos 7,在阿里云的三台机器上部署zookeeper集群,假设目前使用的账号为release,拥有sudo权限. 由于Docker官方镜像下载较慢,可以开启阿里云的Docker镜像下 ...
- Windows下Wireshark安装版本选择方式
Windows下Wireshark安装版本选择方式 Wireshark版本分为1.X系列和2.X系列.1.X系列是早期版本,不提供中文版本.2.X系列是新版本,安装后,同时提供中文版和英文版.根据 ...
- iOS 9的新的改变 iOS SDK Release Notes for iOS 9 说了些改变
iOS 9的新的改变 iOS SDK Release Notes for iOS 9 说了些改变 看了下还算能理解!!!有兴趣可以看看哈!!!不喜勿喷!!后面的对于废除的方法什么有用感觉!!! ...
- java8新特性——时间日期API
传统的时间 API 存在线程安全的问题,在多线程开发中必须要上锁,所以 java8 现在为我们提供了一套全新的时间日期 API ,今天进来学习一下java8 的时间日期 API. 一.使用 Local ...
- 【BZOJ 2982】 2982: combination (卢卡斯定理)
2982: combination Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 510 Solved: 316 Description LMZ有n个 ...
- 【BZOJ 2121】字符串游戏
http://www.lydsy.com/JudgeOnline/problem.php?id=2121 dp,设\(f(i,j,k,l)\)表示原串i到j这个子串能否被删成第k个串的长度为l的前缀. ...
- 【20181027T3】山河令【DP套DP】
原题 [错解] 一眼DP 哎好像能删成奇形怪状的 弃疗,主要是没时间了 [正解] 神仙DP 明显先设\(f(i,j)\)表示把\([i,j]\) 取完的最小代价 然后发现转移不了,因为可以拿很多块 但 ...