svn和git目前是都是开发界中上版本控制的老大。介于应用场景,他们有不同的用处,但是目前越来越多的开发团队选择向git靠拢。
svn和git的主要区别有:
1.git是分布式的版本控制系统,而svn不是。
2.git把内容按照一个元数据的数据形式存储;而svn的存储是按文件:所有的资源控制系统都是把文件的元信息存储在一个类似.svn,.cvs等的文件夹。
3.git分支和svn的分支不同,svn的分支指的是在版本库中的另一个目录。
4.git没有一个全局的版本号,而svn有(这是跟svn'相比git缺少的最大一个特征。)
5.git的内容完整性要优于svn,git的内容使用的是哈希算法,以元数据快存储,假如一个公司的遇到磁盘损害或者网络故障时能最大限度地降低内容的损害。
git的指令集合:
1.创建仓库
指令:git init 仓库名
例如:在某一路径下下执行命令 git init myRe,则创建一个名为myRe的一个仓库
2.拉代码
指令 :git clone url 指定的名称(可选)
例如:git clone xxx A(克隆xxx到当前目录,并且名为为A)
3.更新代码
先切换分支到要更新的分支上,然后在更新代码:
git checkout dev
git pull origin dev
4.提交代码
第一步:进入所在仓库的文件夹中
第二步:用git status 命令查看本地分支文件信息,防止更新项目时不发生冲突
第三步(可以省略):为了防止本地仓库和远程仓库的更新的不一致,要用git pull -f 命令执行一下,这个命令将会把服务器上更新的而本地仓库没有的文件同步。但是如果执行这个语句,就要另行自己修改冲突的代码,这样会比较麻烦。
第四步:git add -A 命令提交所有的更新的文件,当然如果只是新加的文件比较少,可以用指定目录进行更新。
第五步:git commit -m "提交说明"
第六步:git push --set-upstream origin master更新到远程服务器
第七步:git branch查看服务端代码分支
第八步:git log 查看代码修改日志
5.将分支master的代码push下来
git pull origin master
6.切换分支
git checkout dev
7.合并dev分支到master上
先切换到master分支,然后执行:
git merge dev
8.删除仓库中的文件
git rm test.html
git commit -m "delete test.html"
git push origin dev
9.恢复文件
git checkout - "test.html"
10.git 忽略文件
输入touch .gitignore,生成.gitignore文件,
编辑.gitignore文件,加入以下代码:
#vue
node_modules/
dist/
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
11.git提交代码出现错误fatal: Unable to create '项目路径/.git/index.lock': File exists.
解决方法:
rm -f ./.Git/index.lock