了解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 "[email protected]"
# 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 "[email protected]"
- 登陆github系统
点击右上角的 Account Settings--->SSH Public keys ---> add another public keys
把你本地生成的密钥(~/.ssh/id_rsa.pub文件中)复制到里面(key文本框中), 点击 add key 就ok了
- 接着打开git ,测试连接是否成功
ssh -T [email protected]
如果提示:Hi defnngj You've successfully authenticated, but GitHub does not provide shell access. 说明你连接成功了
- github上创建立一个项目
击页面右下角“New Repository”
填写项目信息,点击“Create Repository” ; 现在完成了一个项目在github上的创建。
- 克隆github上新创建的项目
git clone [email protected]:xxxx/xxxxx-demo.git
//git clone [email protected]:用户名/项目名字.git
- 提交修改
git add .
git commit –m ”new files”
git push
#或者
git remote add origin [email protected]:xxxx/xxxx-demo.git
- 更新版本
git fetch origin
//取得远程更新,这里可以看做是准备要取了
git merge origin/master
//把更新的内容合并到本地分支/master
- 简单常用命令
git remote -v
//查看你当前项目远程连接的是哪个仓库地址。
git status
//查看当前项目下所有文的状态,
- 远程项目与本地项目联系起来
git remote add origin [email protected]:xxxx/xxxx-demo.git
非学,无以致疑;非问,无以广识