说起git,就不得不说git的版本控制系统:
1.本地版本控制系统:只有一个分支
缺点:功能比较单一,很难实现多人协同开发
2.集中式版本控制系统:通过单一的集中管理的服务器,保存所有文件的修订版本,协同工作的开发者都通过客户端连到这台服务器,取出最新的文件或者提交,
其代表是SVN
缺点:如果集中服务器出现故障,将会导致数据丢失的风险,而且更新数据时,严重依赖网络
3.分布式版本控制系统:不需要主服务器,每一个协同开发者都拥有一个完整的本地代码仓库,这样的话,任何协同开发者用的服务器发生故障,事后都可以用其它协同开发者本地仓库恢复,需要一台共享服务器,所有开发者通过这台共享服务器同步和更新数据.代表就是git
git常见操作:
(1)将现有项目初始化为一个仓库
初始化仓库:git init
(git init 只是创建了一个名为.git的隐藏目录,这个目录就是存储我们历史版本的仓库)
(2)已用git进行版本控制的仓库克隆到本地:
git clone [email protected]:zhoushugang/meituan.git
(假如公司已有项目用了git,那我们就利用克隆,执行完这个命令,会在当前目录下生成一个meituan目录(默认和仓库名称相同),这个便是已经使用git管理的项目)
1.创建版本库
git clone url //克隆远程版本库
git init //初始化本地版本库
2.修改和提交
git status //查看状态
git diff //查看变更内容
git add . //跟踪所有改动过的文件
git add xxx //跟踪指定的文件
git mv old new //文件改名
git rm file //删除文件
git rm --cached xxx //停止跟踪文件但不删除
git commit -m "commit message" //提交所有更新过的文件
git commit --amend //修改最后一次提交
3.查看提交历史
git log //查看提交历史
git log -p xxx //查看指定文件的提交历史
git blame xxx //以列表方式查看指定文件的提交历史
4.分支与标签
git branch //显示所有本地分支
git checkout xxx //切换到指定分支
git branch xxx // 创建新分支
git branch -d xxx //删除本地分支
5.合并
git merge xxx //合并指定分支到当前分支
6.远程操作:
git remote -v //查看远程版本库信息
git remote show xxx //查看指定远程版本库信息
git fetch xxx //从远程库获取代码
git pull xxx branch(xxx) //下载代码及快速合并
git push xxx branch(xxx) //上传代码及快速合并
git push --tags //上传所有标签
7.git遇到问题
Please enter a commit message to explain why this merge is necessary.
git 在pull或者合并分支的时候有时会遇到这个界面。可以不管(直接下面3,4步),如果要输入解释的话就需要:
1.按键盘字母 i 进入insert模式
2.修改最上面那行黄色合并信息,可以不修改
3.按键盘左上角"Esc"
4.输入":wq",注意是冒号+wq,按回车键即可
8.git tag 打标签
git tag //查看所有tag标签
git tag v1.8.7 -m ‘修改下载’ //打版本标签并且填写详情信息
git push origin v1.8.7 //把标签push到远程分支,后面加版本号
9.git pull 发生的一些问题:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details
git pull
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/
说的是git本地分支没有关联远程分支
解决办法是:
git branch --set-upstream-to=origin/remote_branch your_branch
origin/remote_branch 是本地分支对应的远程分支
your_branch 是你当前本地分支