共享仓库
bare 裸仓库
生成裸仓库时必须以.git结尾。
仓库就相当于一个服务器
### 创建远程仓库
1. 创建以.git结尾的目录mkdir repo.git
2. 进入该目录cd repo.git
3. 初始化共享仓库git init --bare
> 这样我们就建好了一个共享的仓库,但这时这个仓库是一个空的仓库,并且不允在这个仓库中进行任何修改。
### 向共享仓库推送内容
> 将自已开发的项目同步到这个目录中,其它开发者就可以共享你开发的项目了。
1. 进入自己的项目跟目录 cd demo
2. git push ../repo.git master
> 这样demo项目就进入到了共享仓库中
### 从共享仓库取出内容
1. 新创建一个目录example(模拟另一个开发者)
2. 进入该目录cd ./example
2. git clone repo.git
通过repo.git共享仓库,我们轻松得到了一个demo的副本
注意! 克隆的时候随便找一个地方就行,但是往下拉的时候要在本地初始化的这个库里面拉。
克隆是克隆的整个文件,而拉的话可以是一个分支。(拉的时候注意路径,要退几层)
如果自己修改代码的同时别人也修改了,而且别人先推上去了,那么你提交的之后如果直接提交的话是提交不上去的,因为版本有点低了,此时你应该先拉下来一版(在往下拉的时候要确保你的代码已经提交到本地库里),然后合并在提交。
//===============================
给地址起一个别名
git remote add origin ../../hello.git
git remote (查看当前仓库都有哪些别名)
上面这行代码表示给后面路径的这个文件加一个别名
在改完别名以后如果想直接推的话执行一下这个命令
就相当于 git push -u origin master 这两个是等效的
上面这个步骤就是建立了跟踪分支
在执行完这以后,在推代码或者 拉代码直接git push 就行了,不用加别名了。
git remote show origin
上面这行代码查询放到的是这个文件的绝对路径
如果第一次推的是别名的话,以后就不能直接写push来推了,所以在第一次的时候要推荐先写-u。
git branch -a 查看所有的分支(包括本地和远程)
git branch 查看本地分支
git branch -r 查看远程分支
远程项目名下面的分支名
git branch -a 查看所有的分支(包括本地和远程)
git checkout -b abc
创建一个分支并且切换过去
git merge abc 和并分支
把abc分支合并到主分支
要是想把远程的一个分支拉下来,首先应该在本地建一个同名的分支。
想在继续用的话要把这个分支合并到主干里面
自己的分支不可以直接推到远程master上,必须自己先合并到本地master上。
然后自己本地的分支可以直接推到远程分支上。
如果自己本地的分支直接推到远程分支的话,而远程又没有这个分支,会直接在远程上新建立一个新的分支。
在远程建立一个分支并且修改后,此时是比主分支版本要新,因为还没合并。
这时候把这版代码克隆下来,如果要修改这个分支的话,因为先自己建一个同名的分支,此时的分支是基于master键的,没有远程的分支版本新。想要修改还得先合并一下
git 高级
在目录里面建一个log文件
来监控日志
创建一个文件(.gitignore)直接创建的话是创建不了的,必须得在sublime创建这个文件。
如果希望log这个文件夹不被传递的话就把log这个文件加进去
怎么删除远程分支?用一个空的分支覆盖远程分支。
(冒号前面设置为空,后面加上远程的分支名称)
或者
比较差异
在执行完git difftool 以后提示你 y或者n 输入y
会出现这个框
右面是工作目录下的,左边是暂存区的
然后shift+: 进入到底行模式
然后输入q 回车,连续几次,就可以退出道命令行模式了
比较与特定提交的差异
后面跟的是提交的id
初始化的时候和提交时候的差异↑ 会一个文件一个文件的比