什么是git
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与 SVN 区别
因为以前一直使用SVN,突然转到Git后感觉不太习惯。 Git 与SVN不同,它采用了分布式版本库的方式, Git 与 SVN 区别点:
1.GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。 2.GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。 3.GIT分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。 4.GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。 5.GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
接下来开始git之旅。
创建新仓库
创建新文件夹,打开,然后执行:
代码语言:javascript复制git init
检出仓库
创建一个本地仓库的克隆版本:
代码语言:javascript复制git clone /path
克隆远端服务器上的仓库:
代码语言:javascript复制git clone username@host:/path
本地仓库的管理说明
提交代码入库
提交代码前,先要添加代码入暂存区:
代码语言:javascript复制git add <filename>
git add *
提交代码入HEAD:
代码语言:javascript复制# 提交暂存区到仓库区
$ git commit -m [message]
# 提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message]
# 提交工作区自上次commit之后的变化,直接到仓库区
$ git commit -a
# 提交时显示所有diff信息
$ git commit -v
# 使用一次新的commit,替代上一次提交
# 如果代码没有任何新变化,则用来改写上一次commit的提交信息
$ git commit --amend -m [message]
注意:这时的代码并没有进入远程服务器。
推送到远程服务器
将改动提交到远端仓库:
代码语言:javascript复制# 上传本地指定分支到远程仓库
$ git push [remote] [branch]
# 强行推送当前分支到远程仓库,即使有冲突
$ git push [remote] --force
# 推送所有分支到远程仓库
$ git push [remote] --all
分支
列出所有本地分支:
代码语言:javascript复制git branch
列出所有远程分支:
代码语言:javascript复制git branch -r
切换分支:
代码语言:javascript复制# 切换到指定分支,并更新工作区
$ git checkout [branch-name]
# 切换到上一个分支
$ git checkout -
查看信息
代码语言:javascript复制# 显示有变更的文件
$ git status
# 显示当前分支的版本历史
$ git log
# 显示commit历史,以及每次commit发生变更的文件
$ git log --stat
撤销
恢复暂存区的指定文件到工作区:
代码语言:javascript复制 git checkout [file]
参考
GIT 常用命令 git - 简明指南