Git之远程库(GitHub)协同开发,fork和忽略特殊文件
GitHub,一个基于Git实现的代码托管的平台,可以将内容以及版本记录在远程也保存一份,这样就不用U盘咯(类似于云盘)。PS: 类似GitHub的产品还有许多,如:GitLab、Bitbucket、码云等。
基于GitHub实现代码托管,需要一下步骤:
- 注册GitHub GitHub网站地址:https://github.com/
- 创建仓库,创建完仓库后会有一个URL代指该仓库,如:
git可以是用该URL进行向远程推送版本信息或获取版本信息
学会使用Git和GitHub之后,就可以基于GitHub进行代码远程托管。
添加远程库:
http://www.cnblogs.com/zh605929205/p/7302553.html 这里可参考我哥网址
把网址重命名成前面的origin,最后一行代码是提交到远程库
ps:上面的命令是GitHub提供给我们的,这些命令我们可以直接用
1、README,md 是GitHub自己生成的,上面s5day83是远程库的名称(这个是我们自己写的名称),一般在本地也创建一个s5day83文件,这样更容易找到这个文件。
2、倒数第二行是把后面的http网址重命名为origin,一般都弄成这个,让人一眼看到就知道是GitHub的,这样以后就直接提交到origin就行了,就不用输入一长串http......了。
3、最后一行代码是推上远程库。
总结一下push和pull步骤操作:
重点注意事项:注意不是第一次push和pull的时候,要在跟远程库名字一样的文件夹里面进行操作,并不是在外面操作。(若要在跟远程库名字一样的文件夹外面操作,首先得设置这个文件夹的权限,设置权限步骤-->>右击这个文件,点击属性->>安全-->>编辑-->>添加-->>输入EV--->>检查名称-->>确定--->>在完全控制后面允许的方框内打上对勾----->>剩下的都点击确定,即可完成权限操作。)
总结用http推送步骤: 1、若没有远程库,要先创建一个远程库,然后复制远程库的路径 2、找到一个自己喜欢的地方,创建一个文件夹,然后在文件夹中右击操作,进行打开git窗口; 3、git窗口打开之后,先git init 初始化操作 4、初始化操作完毕之后,在当前下随便创建一个新的文件,然后在git add . ----->>git commit -m "描述信息" ,进行这两步骤操作。 5、git remote add origin http路径网址,进行重命名操作。 6、git push origin master 这样即可完成推送操作,刷新自己远程库页面,会发现多了一个自己上传的文件。 PS: 1、只能推送一次,拉下来一次,再推送一次,再拉下来一次,不能连续推送,可以连续下拉 2、在同一个文件夹下面推送,则输入推送命令即可,但是在新文件加下面,第一次操作的时候,必须要先(init)初始化操作。 总结ssh推送步骤操作 1、首先创建一对秘钥 ssh-keygen -t rsa,然后在本地电脑的c盘(用户->>Administrator->>.ssh)里面可找到ssh文件,然后进去之后, 打开公钥的文件,设置好秘钥。(还有一种方式是输入命令操作,请看下面的配置文件里面的具体内容步骤) 2、然后步骤跟上面http的3、4、5 、6步骤一样,进行操作推送即可,注意重命名的时候,换产生ssh路径即可。 总结下拉步骤操作: 1、找一个地方,先创建一个文件,然后进行git clone http路径名 or ssh路径名,即可完成clone操作,完成之后会发现当前文件夹下面 会出现一个跟远程数据库名字一样的文件,这就证明pull成功了,注意:第一次必须用clone操作哦。 ps:在同一个文件夹下面pull,则直接输入pull相关命令即可,但是在新文件夹下面操作,第一次必须用clone操作。
额外补充:查看远程库:
git remote----->>后面不带参数,表示:列出已经存在的远程分支,有几个,就会显示出来几个。
git remote -v //加上-v参数可以查看详细信息 ----> 显示了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址。
现在先做一些简单的流程操作:
GitHub(代码托管) GitLab(公司自己搭建代码托管) 公司: 创建远程仓库 写readme git add . git commit ... git push origin master----->>表示:推到远程库 下班 家: git clone https://github.com/WuPeiqi/s5day83.git ----->>克隆下来远程库的东西 git add . git commit ... git push origin master ----->>再次推送 到公司: git pull origin master ----->>从远程库拉下来 # 继续开发,开发到一半,留点代码回家做 git add . git commit -m 'xxx' # git push github master ----->>若这次忘记了推送,则到家之后,跳过这一部分,写后面的内容 家: 根据自己的记忆继续写代码: 在家完成后续功能 git add . git commit -m 'xxx' git push origin master ----->>从家推送到库 公司: git pull github master ----->>继续拉下来。。。(下面的两行代码,跟执行这一行代码是一样的效果) git fetch github master git merge github/master <=> git rebase github/master 解决冲突 # 继续写代码 git add . git commit -m 'xxx' git push github master
ps:
1、如果有冲突,跟之前status解决冲突是一样的操作。
2、克隆的时候,是克隆全部的代码,放心操作即可。
3、注意下面这个,这个的话是从远程拉到分支里面,会自动另外出现一个名字,若名字叫origin,那么则如下图显示;若叫github则叫,也看下面图片。
4、git pull github master 等于 git fetch github master 加 git merge github/master(git rebase github/master) ,
在这里要这两个的区别:git merge github/master <=> git rebase github/master ,这两个代码执行效果一样,唯一不同的是,图形效果不同,用rebase流程图更清晰如下图
协同开发开始:
1、找到要协同开发的用户名字,将其他用户添加到仓库合作者中之后,该用户就具有向当前仓库提交代码的权限。
2、组织,创建一个组织,然后再该组织下可以创建多个项目,组内成员可以向组内所有项目提交代码。PS:也可以对某个项目指定合作者(下面是三幅图)
fork 开始:
有没有给别人的代码做过贡献?没有的话,下面就跟我一起开始吧,这就是fork操作
1、找到想搞的项目,fork一下,然后这个项目就在自己仓库出现了
2、从自己仓库获取代码并进行编辑提交
3、创建并提交一个pull request,然后等待原作者是否同意这个pull request,如果同意那么在作者的源代码中就推出现小P提交的功能
配置文件:(解决头疼的重复输入密码问题)
1、Git的配置文件有三个:
- 系统配置: /private/etc/gitconfig
- 用户配置: ~/.gitconfig
- 项目配置:.git/config ----->>当前项目的配置文件
- PS:打开这些进行配置的时候,都用vim编译器
2、
由于Git和Github交互操作可能会很频繁,那么一定少了用户授权的操作,为了防止每次操作重复输入用户名和密码,Git提供了两种解决方法:
- 秘钥
首先创建一对秘钥 ssh-keygen -t rsa,然后将 id_rsa.pub (公钥)内容拷贝到github中,日后操作无需再输入用户名和密码。
注意:这种方式需要使用GIt中 git@github.com:WuPeiqi/xxxxx.git 格式地址。 - 密码 ----->>参考老师博客
步骤开始:
1、创建秘钥的时候,要cd ~/.ssh 先切换到这个目录下进行创建(设置好秘钥之后,要回到需要上传的某个文件夹下面,然后再次进行上传操作),首先创建一对秘钥 ssh-keygen -t rsa,创建之后,会出现公钥和私钥的键值对;(创建秘钥的时候,输入命令之后,若一直提示继续输入,则一直点击回车)
2、打开公钥之后,复制里面的内容
3、在GitHub中,个人中心里面找setting,然后放到这个里面,title随便写就行
忽略文件设置操作:
1、vim .gitignore,创建一个这个文件
2、在这个文件里面,写一写东西,如:a.* 、 test/[abc].py 、[abc] test/* 、 !test/a.py ....,写进去这些之后,再git status的话,就检测不到了(这样就可以忽略pycharm给我们自己创建的文件)
PS: git命令只能在: .git 文件的路径。(.git这个只有初始化之后才有)
http://www.cnblogs.com/wupeiqi/p/7295372.html 详细参考博客