远程仓库
这里介绍的远程仓库指的是 GitHub, 在这个网站,所有非私有的的代码,都可以被其他人查看,所以,一些机密或者重要的文件千万不要上传到这里面,如果需要可以购买付费版本或自己公司搭建埃及的远程仓库
添加远程仓库
登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库, 创建成功后得到一个空的仓库,下面会给出命令,将我们本地的 git 仓库与他相关联,根据提示便可以完成。
把本地库的内容推送到远程
创建远程仓库 写readme git add . git commit ...
git push origin master // origin 是别名
可以在 .git/config 配置文件中修改
把远程仓库内容克隆到本地
远程库已经准备好了,下一步是用命令 git clone
克隆一个本地库
git clone https://github.com/WuPeiqi/s5day83.git
协同开发
通常用到的分支
master : 存放稳定的
review : 个人代码在这里合并,合并成功后(清除冲突后),放入 dev
dev : 开发版本的代码
当你从远程仓库克隆时,实际上Git自动把本地的master
分支和远程的master
分支对应起来了,并且,远程仓库的默认名称是origin
。
要查看远程库的信息,用git remote
:
$ git remote origin
或者,用git remote -v
显示更详细的信息:
$ git remote -v origin git@github.com:michaelliao/learngit.git (fetch) origin git@github.com:michaelliao/learngit.git (push)
上面显示了可以抓取和推送的origin
的地址。如果没有推送权限,就看不到push的地址。
推送分支
推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上
$ git push origin master
如果要推送其他分支,比如dev
,就改成:
$ git push origin dev
Fork
主要是用来修改别人程序的 bug, 但由于没有权限,所以只能复制一份到自己的仓库中,修改后发送给对方,等待对方采纳或忽略。。。
你可以访问它的项目主页,点“Fork”就在自己的账号下克隆了一个bootstrap仓库,然后,从自己的账号下clone:
git clone git@github.com:michaelliao/bootstrap.git
注:一定要从自己的账号下clone仓库
如果你修改成功后,推送到自己的仓库。
如果你希望bootstrap的官方库能接受你的修改,你就可以在GitHub上发起一个pull request。当然,对方是否接受你的pull request就不一定了。
让 Git 输入框有颜色
$ git config --global color.ui true
忽略特殊文件
在Git工作区的根目录下创建一个特殊的.gitignore
文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。
https://github.com/github/gitignore 这个网络中有许多写好的配置,我们可以用来参考下
忽略文件的原则是:
- 忽略操作系统自动生成的文件,比如缩略图等;
- 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的
.class
文件; - 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
举个例子:
# Windows: Thumbs.db ehthumbs.db Desktop.ini # Python: *.py[cod] *.so *.egg *.egg-info dist build # My configurations: db.ini deploy_key_rsa
下面是一些规则说明
a.* // a开头的所有后缀名 test/[abc].py // test目录下的 a.py 或 b.py 或 c.py [abc] // a 或 b 或 c test/* // test下的所有文件 !test/a.py // 非 test下的a.py 文件 .idea/* // .idea文件夹下的所有文件 *.pyc // 所有.pyc 文件 *.excel // 所有 .excel 文件