标签:分布式 拉取 init 命令操作 冲突 连接 .com sof 输入
目前市场主流的版本控制系统主要分为:集中式版本控制系统与分布式版本控制系统。两者之间的区别:
集中式有中央服务器,开发人员需要从中央服务器获得最新版本的项目然后在本地开发,开发完推送到中央服务器中,因此无法脱离服务器。
分布式没有中央服务器,开发人员本地都有local repository
集中式必须要联网才能工作,而且对网络的依赖性较强,如果推送的文件比较大而且网络状态欠佳,则提交文件的速度会受到很大的限制。
分布式在没有网络的情况下也可以执行commit、查看版本提交的记录,以及分支操作,在有网络的情况下执行push到 Remote Repository。
集中式提交的文件会直接记录到中央版本库,分布式提交是本地操作,需要执行push操作才会到主要版本库。
Git工作过程图:
本地库与远程库交互的方式:
1、团队内协作
成员1创建本地库,将代码提交到远程仓库,成员2clone下代码,加入团队后才可以进行push操作。
2、跨团队协作
团队2可以fork团队1的代码,团队2通过pull request之后,通过团队1进行审核。
Git配置:
项目级别的配置:
git config user.name tom
git config user.email aaaa@aa.com
修改的文件在:当前项目下.git/config
用户级别的配置:
git config --global user.name tom
git config --global user.email aa@aa.com
Git命令:
创建仓库:git init
查看状态:git status
创建一个文件添加到git中
git add aa.txt 将aa.txt添加到git暂存区中。
git -rm --cached aa.txt:将aa.txt从暂存区删除。
提交:git commit -m "添加新文件"
添加并提交:git commit -am "xxx" add并commit
查看提交记录:git log 或者: git log --pretty=oneline 或者 git log --oneline 或者 git reflog
版本的前进与后退:git reset --hard 版本的索引值
版本的后退:只能后退:
git reset --hard HEAD^ 后退一步
git reset --hard HEAD^^^ 后退三步
git reset --hard HEAD~3 后退三步
--hard --soft --mixed
--hard:工作区与暂存区与本地库一起改变
--soft:工作区与暂存区不变,本地库落后
--mixed:工作区不变,暂存区与本地库落后
git reset --hard HEAD 将暂存区与工作区与本地库状态同步
在当前版本的中删除了文件a.txt,然后查看git status,然后git add a.txt git commit -m ‘delete‘
当时,当前版本的中a.txt将不在存在,我们如果想找回,需要回到上一个版本中。才可以找回。
对于删除文件记录提交到暂存区,想恢复:
git reset --hard HEAD 这个时候,会将暂存区与工作同的内容与本地库进行同步操作。
--------前提是删除前的状态,提交到了git本地库里面。----------
比较文件差异:
git diff 文件名 默认是将当前工作区中的文件与暂存区中的文件进行比较的。
git diff HEAD 文件名 当前工作区与本地库中的版本进行比较的。
分支操作:
创建分支:git branch dev
查看分支:git branch -v
切换分支:git checkout dev
合并分支:git checkout master git merge dev
合并分支冲突问题:当修改了相同的内容的时候,会产生冲突问题
产生冲突时,需要对产生冲突的文件进行手动的合并操作
合并完成后,git add xx
git commit -m "xxxx" 注意:此时不带文件名。
git pull 从远程上拉取项目,它相当于git foreach与git merge两个命令的组合使用。
GitHub
git连接github
git remote origin xxxxxxx.git地址
git remote -v 查看
从服务器中拉取项目
从服务器中上传项目
解决冲突问题。
git push origin master
git remote add origin 仓库的地址
2、查询用户信息
git config --list
3、如果push遇到在输入密码是熟错后,就会报这个错误fatal: Authentication failed for
解决办法:
git config --system --unset credential.helper
之后你在push就会提示输入名称和密码
所以我们需要先同步一下
git pull origin master
6、更新项目
git push origin master
7、创建分支
git checkout -b dev
等于:
git branch dev
git checkout dev
8、切换分支
git checkout dev
9、合并分支,在合并分支的时候,需要合并到哪个分支,就要先切换到哪个分支
git checkout master
git merge dev 合并分支
git reset --hard dev;
git pull --force origin master
标签:分布式 拉取 init 命令操作 冲突 连接 .com sof 输入
原文地址:http://blog.51cto.com/13733462/2319746