在工作中经常要使用git,我使用的不是很熟练,经常遇到一些git的问题,比如merger代码,拉远程分支之类的,这里简单的做一个总结方便后边查找与学习。
Git的几个分区
工作区:我们平常的项目目录就是一个工作区。
暂存区:一般存放在“.git”目录下的index(.git/index)中,当项目目录里面的文件增、删、改操作之后,文件放入的区域。
本地仓库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库,里面记录着所有的提交、更改等操作。
远程仓库:远程管理代码的目录。
Git的基本命令
git clone
git clone <版本库的网址>
如果要指定不同的目录名,可以使用改命令
git clone <版本库的网址> <本地目录名>
git remote
git要求每个远程主机都必须指定一个主机名,git remote 命令就用于管理主机名,这里用的不是很多,就不详细说了。
git fetch
一旦远程主机的版本库有了更新,需要将这些更新取回本地,这时就要用到git fetch命令。
git fetch <远程主机名> //将某个远程分支的更新,全部取回到本地
git fetch <远程主机名> <分支名> //取回特定分支的更新
git brach -r/-a //-r 查看远程分支,-a查看所有分支
git checkout
git checkout -b newBrach origin/matser //创建一个newBrach分支,并切换到该分支
git merge和git rebase
在本地分支上合并远程分支,在merge时,应该以别人的代码为主
git pull
git pull //取回远程主机某个分支的更新,在与本地的指定分支合并
git pull <远程主机名> <远程分支名>:<本地分支名>
//eq:
git pull origin next:master //取回origin主机的next分支,与本地的master分支合并
git pull origin next //如果远程分支是与当前分支合并,则冒号后面的部分可以省略
关联分支
git branch --set-upstream next origin/next //将本地分支与远程分支关联
git push
git push //将本地分支的更新,推送到远程主机
git push <远程主机名> <本地分支名>:<远程分支名>
//eq:
git push origin master //将本地的master分支推送到origin主机的master分支
//,如果后者不存在, 则会被创建
如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支
git push origin :master
//等同于
git push origin --delete master