GIT介绍

来源:互联网 发布:linux 宕机 分析 编辑:程序博客网 时间:2024/06/07 20:14

Git是一个强大的分布式的源代码管理工具。支持分支功能。如果你想开发一个新的产品功能,你可以建立一个分支,对这个分支的进行修改,而不至于会影响到主支上的代码。

提供命令行工具、图形工具。

1. 傻瓜都会的初始化,git init, git commit -a, 就完了。对于随便写两行代码就要放到代码管理工具里的人来说,再合适不过。也可以拿git做备份系统,或者同步两台机器的文档,都很方便。 
2. 绝大部分操作在本地完成,不用和集中的代码管理服务器交互,终于可以随时随地大胆地check in代码了。 只有最终完成的版本才需要向一个中心的集中的代码管理服务器提交。
3. 每次提交都会对所有代码创建一个唯一的commit id。不像CVS那样都是对单个文件分别进行版本的更改。所以你可以一次性将某次提交前的所有代码check出来,而不用考虑到底提交过那些文件。(其实SVN也可以做到这点)
4. branch管理容易多了,无论是建立新的branch,还是在branch之间切换都一条命令完成,不需要建立多余的目录。 
5. branch之间merge时,不仅代码会merge在一起,check in历史也会保留,这点非常重要。

分支更快、更容易。
支持离线工作;本地提交可以稍后提交到服务器上。Git 中的每个工作树都包含一个具有完整项目历史的仓库。

检出仓库:$ git clone git://github.com/jquery/jquery.git

查看远程仓库:$ git remote –v

添加远程仓库:$ git remote add [name] [url]

删除远程仓库:$ git remote rm [name]

拉取远程仓库:$ git pull [remoteName] [localBranchName]

推送远程仓库:$ git push [remoteName] [localBranchName]

分支(branch)操作相关命令查看本地分支:$ git branch

查看远程分支:$ git branch –r

创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支

切换分支:$ git checkout [name]

创建新分支并立即切换到新分支:$ git checkout -b [name]

删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项

合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并创建远程分支

(本地分支push到远程):$ git push origin [name]

删除远程分支:$ git push origin :heads/[name]

版本(tag)操作相关命令查看版本:$ git tag

创建版本:$ git tag [name]

删除版本:$ git tag -d [name]

查看远程版本:$ git tag –r

创建远程版本(本地版本push到远程):$ git push origin [name]

删除远程版本:$ git push origin :refs/tags/[name]

子模块(submodule)相关操作命令添加子模块:$ git submodule add [url] [path]

初始化子模块:$ git submodule init  ----只在首次检出仓库时运行一次就行

更新子模块:$ git submodule update ----每次更新或切换分支后都需要运行一下

删除子模块:$ git rm --cached [path]

忽略一些文件、文件夹不提交在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如targetbin*.db



在Git服务管理工具这个领域,主要有三种流行的方案,它们分别是 

  • Gitosis - 轻量级, 开源项目,使用SSH公钥认证,只能做到库级的权限控制。目前项目已经停止开发,不再维护。
  • Gitolite - 轻量级,开源项目,使用SSH公钥认证,能做到分支级的权限控制。
  • Git + Repo + Gerrit - 超级重量级,集版本控制,库管理和代码审核为一身。可管理大型及超大型项目。
大名鼎鼎的Android平台就是使用的 Git + Repo + Gerrit。对于个人,中小型企业及一些开源项目而言,如果没有特殊的要求,其实没有
必要去架设上面第三种方案Git服务器。Gitolite提供的服务已经足够用。

0 0
原创粉丝点击