了解 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
来源: http://www.bubuko.com/infodetail-2602960.html