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 ...
随机推荐
- IP地址输入框
<style> div.IPDiv{background:#ffffff;width:120;font-size:9pt;text-align:center;border:2 ridge ...
- SCU 4441 Necklace
最长上升子序列,枚举. 因为$10000$最多只有$10$个,所以可以枚举采用哪一个$10000$,因为是一个环,所以每次枚举到一个$10000$,可以把这个移到最后,然后算从前往后的$LIS$和从后 ...
- Python并发编程-一个简单的爬虫
一个简单的爬虫 #网页状态码 #200 正常 #404 网页找不到 #502 504 import requests from multiprocessing import Pool def get( ...
- 为什么23种设计模式里面没有MVC?
作者:lorio链接:https://www.zhihu.com/question/27738109/answer/100241918来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...
- Java反射机制demo(二)—通过Class实例化任意类的对象
Java反射机制demo(二)—通过Class实例化任意类的对象 上一章节中,实例化了Class类对象的实例,这个部分的demo展示了如何使用Class对象的实例去获得其他类的对象的实例. 任意一个类 ...
- .zip格式和zip伪加密
ZIP文件的组成: 压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志 压缩源文件数据区 50 4B 03 04:这是头文件标记(0x04034b50) 14 00:解压文件所需 pkware ...
- Hibernate 对象的生命周期及CRUD操作
对象状态及生命周期 1.Transient(瞬时状态):new的对象为瞬时态 session中没有数据,数据库中没有数据. 2.Persistent(持久状态):被session管理的对象为持久状态, ...
- 【BZOJ 2669】 2669: [cqoi2012]局部极小值 (状压DP+容斥原理)
2669: [cqoi2012]局部极小值 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 667 Solved: 350 Description 有一 ...
- 【UOJ #103】【APIO 2014】Palindromes
http://uoj.ac/problem/103 由manacher得:本质不同的回文串只有\(O(n)\)个. 用manacher求出所有本质不同的回文串,对每个本质不同的回文串,在后缀自动机的p ...
- 范浩强treap——可持久化
当平衡树需要可持久化的时候,意味着我们需要访问以前的某个时间点的平衡树,就要保持以前的树形态不变,新建一个时间戳,构建一棵新的树. 如果用以前的旋转treap可能就不方便做到(又要打时间戳,又要新建节 ...