Github
在版本控制系统中,大约90%的操作都是在本地仓库中进行的:暂存,提交,查看状态或者历史记录等等。除此之外,如果仅仅只有你一个人在这个项目里工作,你永远没有机会需要设置一个远程仓库。
只有当你需要和你的开发团队共享数据时,设置一个远程仓库才有意义。你可以把它想象成一个 “文件管理服务器”,利用这个服务器可以与开发团队的其他成员进行数据交换。
注册
访问github首页,点击 Sign up 连接。(注册)
填写用户名、邮箱地址、GitHub登陆密码
选择计划
填写 GitHub 问题
验证邮箱
GitHub 个人中心
多人协作开发流程
- A在自己的计算机中创建本地仓库
- A在github中创建远程仓库
- A将本地仓库推送到远程仓库
- B克隆远程仓库到本地进行开发
- B将本地仓库中开发的内容推送到远程仓库
- A将远程仓库中的最新内容拉去到本地
创建仓库
填写仓库基本信息
将本地仓库推送到远程仓库
git push https://github.com/teach-tian/ccc.git master
备注:如果远程仓库有内容,要先 git pull https://github.com/teach- tian/ccc.git master
git remote add origin https://github.com/teach-tian/ccc.git // git 添加远程仓库origin (origin是仓库别名)
git push origin master
git push -u origin master
-u 记住推送地址及分支,下次推送只需要输入
git push
即可
备注: 首先本地已经进行git初始化等一系列操作之后再进行推送命令:
git push -u -f origin master
(提交到远程仓库,这个命令中的 -f是强制推送,因为远程仓库只有初始化的文件,所以强制推送上去就行了)
同样可以尝试这句:(从远程仓库拉取内容,同步本地仓库)
git pull origin master --allow-unrelated-histories
拉取操作
1 克隆仓库
克隆远端数据仓库到本地:git clone仓库地址
2 拉取远程仓库中最新的版本
拉取远程仓库中最新的版本:git pull 远程仓库地址 分支名称
3… 如何邀请别人成为当前项目的开发者
邀请别人成为当前项目的开发者,别人就可以向公共仓库推送代码。
流程如下:
进入github仓库---> settings---->Manage access----->第一次添加会弹出密码输入框------>Invite a collaborator (输入你邀请的B程序员github账号)----> 发送邀请------>B程序员登陆邮箱接受邀请------B程序员可以向仓库推送代码
这将产生一个流程图。:
解决冲突
在多人同时开发一个项目时,如果两个人修改了同一个文件的同一个地方,就会发生冲突。冲突需要人为解决。
跨团队协作
即使你不是团队成员,也可以向别人的仓库贡献代码。
1.程序员 C fork仓库
2.程序员 C 将仓库克隆在本地进行修改
3.程序员 C 将仓库推送到远程 (git push 远程仓库地址 master)
4.程序员 C 发起pull reqest
点击pull requests—>点击 new pull request-–>create pull request-—>输入推送描述信息–>create pull request
5.原仓库作者审核 (与提交者对话)
6.原仓库作者合并代码(merge pull request)
ssh免登陆
https协议仓库地址格式:
https://github.com/itcast-frontEnd/git-demo.git
每次用https协议的地址进行git push git pull
操作时都需要输入github账号密码进行身份验证。所有我们有了ssh协议,可以免登陆操作。
生成秘钥:ssh-keygen
秘钥存储目录:C:\Users\用户\.ssh
公钥名称:id_rsa.pub
(放到github服务器中)
私钥名称:id_rsa
(放在自己电脑上)
添加远程仓库,起别名:origin_ssh
git remote add origin_ssh git@github.com:teach-tian/ccc.git
向远程仓库origin_ssh
推送,无需密码。
git push origin_ssh master
GIT忽略清单
将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件。
git忽略清单文件名称:.gitignore
内容为:
# dependencies npm包文件
/node_modules/
# 过滤所有.zip文件
*.zip
# 过滤某个具体文件
/cc/a.css
# production 打包文件
/build/
将工作目录中的文件全部添加到暂存区:git add
为仓库添加详细的说明
创建 README.md(使用markdow 语法)
Linux 命令:
1. ls 查看文件/目录
2. pwd 显示当前的工作目录
3. cd 进入目录
[例子]:
cd 回到注册进入时的目录
cd /tmp 进入 /tmp 目录
cd ../ 进入上级目录
4. mkdir 创建目录
5. rmdir 删除目录
6. cat 显示文件至标准输出
7.cp 拷贝
例子
cp fi le1 file2 将文件 file1 拷贝到文件 file2
8. mv 移动
- i 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止
[例子]:
mv file1 file2 将文件 file1 改名为 file2
mv file1 file2 /tmp 将文件 file1 和文件 file2 移动到目录 /tmp 下
9. touch 创建文件
10. vi 编辑
i 插入 编辑内容
esc 退出编辑
:wq 保存并退出
更多linux 指令参考:https://www.cnblogs.com/frankliiu-java/articles/2059537.html
git 与svn比较
git:分布式版本控制系统
,免费而超好用的gitgitHub 是使用git进行版本控制的代码管理网站
SVN: 集中式的版本控制系统
,而Git是分布式版本控制系统。
区别:集中式版本控制系统是,干活的时候用的都是自己的电脑所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。
中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆
集中式版本控制系统最大的毛病就是必须联网才能工作。
分布式版本控制系统根本没有‘中央服务器’,每个人的电脑上都是一个完整的版本库,这样就可以不用联网了,
但是如果你在自己电脑上修改了文件A,你的同事也修改了A,你们两个需要互相推送就可以看到对方的修改了。
分布式版本控制系统通常也有一台充当‘中央服务器’的电脑,这个服务器用来‘交换大家的修改’,交换修改更方便。
Git极其强大的分支管理
小型服务器
点击链接进入我的小型服务器 https://tian1w1.github.io
复制 :https://tian1w1.github.io 在浏览器输入框内把地址放入
SourceTree使用方法
一 、SourceTree简介
SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作。同时它也是Mercurial和Subversion版本控制系统工具。支持创建、提交、clone、push、pull 和merge等操作。
二、下载安装SourceTree步骤
1、下载地址:https://www.sourcetreeapp.com/,该版本是中文的
下载完成后可以进行安装。
2、安装SourceTree
安装首界面
点击,Next
点击“install”,安装完成后,打开sourcetree,点击“user an existing account”,如图
注意:1使用谷歌帐号登录即可,前提是你必须可以上谷歌才可以。
GOOGLE帐号登录完成之后,如图:
此处无需设置,直接点击“跳过初始设置”即可。
登录注册成功后,弹出设置puttykey的界面,点击“取消”即可。
此时进入到sourcetree的主界面,现在就可以使用sourcetree啦。
三、集成文件对比插件
安装对比插件
Sourcetree中集成Beyond Compare 4,当文件冲突时可以很好的解决冲突。安装过程很简单,这里不再详述。
Sourcetree中配置Beyond Compare 4
菜单栏,“工具”——“选项”,如图所示:
选择“比较”选项卡,然后将红色方框处的内容修改为如图所示:
四、SourceTree基本使用
克隆
点击克隆按钮,克隆项目:
既可以是本地已有的git项目,也可以是远程目录中的项目,
本地存在的git项目,
获取项目克隆地址,点击克隆按钮,如图所示:
1、克隆项目的路径
2、克隆项目存放的位置
3、如果要下载特定的分支,可以按分支进行下载
配置忽略文件
利用.gitignore过滤文件,如编译过程中的中间文件,等等,这些文件不需要被追踪管理。
.gitignore文件只对还没有加入版本管理的文件起作用,如果之前已经用git把这些文件纳入了版本库,就不起作用了
使用sourcetree添加忽略文件的方法:
正常情况下,管理员创建项目后需要直接将忽略文件创建好。创建方法如图:
按照如上步骤操作即可编辑冲突文件。
冲突文件规则:
忽略文件夹(如:bin、obj):
obj/
bin/
某目录下的所有.txt文件,
obj/*.txt
开发的过程中可能遇到一些忽略文件中未添加的文件,此时需要开发者自行添加忽略文件,添加方法如下:
之前已经介绍过未进行版本控制的或者受版本控制的文件,在sourcetree的“文件状态” 标签中查找,如图所示