参考: 廖雪峰Git教程
在某个目录下输入 git init
命令可变成 git 管理的仓库
1git init
2> Initilized empty Git repository in /XXXXX
假设本地已有 XXX 等文件,现在登录 Github 账户,create a new repo,创建一个新的仓库XXX. 根据 Github 的提示,在本地的 XXX 仓库下运行命令:
xxxxxxxxxx
21git remote add origin git@github.com:ghzphy/XXX.git
2git push -u origin master
将本地库内容推送远程,用 git push
命令. -u是首次推送使用的,之后只要本地提交后,就可以通过命令:
git push origin master
假设此时 Github 上已有完整的仓库 XXX,我们可以从远程库克隆,在适当的目录下输入命令
xxxxxxxxxx
11git clone git@github.com:ghzphy/XXX.git
也可以用 https://github.com/ghzphy/XXX.git 这样的地址,不过这种速度慢,而且每次推送都必须输入口令。但是在某些只开放 http 端口的公司内部就无法使用 ssh 协议而只能用 https。
常用命令
git status
命令查看仓库当前的状态git diff
命令查看文件的difference: git diff filesgit add
命令将文件添加到仓库,git add file, git add .git commit
命令把文件提交到仓库,git commit -m "description" 表示本次提交的说明git log
命令显示提交日志,输出简化:'git log --pretty = oneline'git reflog
记录每一次命令。git pull orgin master
获取远程库与本地仓库同步合并文件版本
在 Git 中,用HEAD表示当前版本,上一个版本是HEAD^,上上一个是HEAD^^,依次多一个^。我们将当前版本回退到上一个版本,命令为:
xxxxxxxxxx
21git reset --hard HEAD^
2git reset --hard 版本号
文件(夹)修改/删除
git rm file
删除file文件。git checkout -- file
命令是撤销工作区的修改。git rm -r --cached files
大小写
查看 Git 中的大小写敏感
xxxxxxxxxx
11git config --get core.ignorecase
更改大小写设置
git config core.ignorecase false
SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。
优点 | 缺点 | |
---|---|---|
SVN | 1、采用集中式,易于管理,保证安全性; 2、管理方便,逻辑明确,理念符合常规思维; 3、代码的一致性高; 4、适合人数不多的项目开发; 5、允许一个文件有任意多的可命名属性,会关注所有的文件类型; 6、支持二进制文件,更容易处理大文件; 7、支持空目录。 | 1、服务器压力太大,数据库容量暴增; 2、必须连接在服务器上,否则基本不能工作、提交、对比、还原等; 3、不适合开源开发。 |
GIT | 1、适合分布式开发,强调个体; 2、公共的服务器压力和数量都不会太大; 3、速度快, 成熟的架构,开发灵活;4、任意两个开发者之间可以很容易的解决冲突;5、离线工作,管理代码成本低,不需要依赖服务器; 6、部署方便。基本上下个命令就可以用; 7、良好的分支机制,可以让主干代码保持干净。 | 1、资料少,学习成本比较大,学习周期比较长,要求人员素质比较高; 2、不符合常规思维; 3、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。 |