目录
分布式版本控制系统
远程仓库
新建远程仓库
管理仓库
issue
Pull Request
克隆远程仓库到本地
向远程仓库推送
拉取远程仓库
配置git
忽略特殊文件
给命令配置别名
分布式版本控制系统
我们之前所说的所有内容,都是在本地,也就是只在你的计算机上,但是git其实是分布式版本控制系统
也就是说,每个人的电脑上都是一个完整的版本库,在你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多人如何协作呢?
当你改了一个文件后,只需要把这个文件的修改推送给对方,就可以互相看到对方的修改了。
分布式版本控制系统可以提高安全性,防止因为电脑坏了等意外情况丢失数据。
但是修改的推送因为必须两方都在场,效率很低。所以分布式版本控制系统通常也有一台充当“中央服务器”的电脑。方便交换大家的修改。
远程仓库
这个“中央服务器”已经有人替我们做好了,就是著名的 github 网站,它提供Git仓库托管服务,只需要注册一个github账号,就能免费获得Git远程仓库。
但是github是一个国外的仓库,访问速度很慢,也不方便。这里用gitee码云来替代
新建远程仓库
填写基本信息
模板里的issue和pull request后面会讲
创建成功页面:
自动生成的REAMDE.md文件是这个仓库的介绍,供访问者读的。en是英文版
管理仓库
设置开源
issue
issue在项目中可以承担用户反馈的作用,用户可以在这个地方提出bug反馈与优化建议,也可以为开发者服务,用于记录待完成的任务。每个issue可以包含该问题的前因后果,对于不了解项目的人员,整理的好的issue列表也有助于把握项目的优化内容。
一般来说,可以包含以下类型:
- 软件的bug
- 功能优化建议
- 待完成的任务
这个issue自动出现的文字就是之前创建仓库时设置的模板
Pull Request
最简单地来说,Pull Request 是一种机制,让开发者告诉项目成员一个功能已经完成。一旦一个分支开发完毕,开发者提交一个 Pull Request。它告诉所有参与者,他们需要审查代码,并将代码并入master分支。
但是,Pull Request 不只是一个通知,还是一个专注于某个提议功能的讨论版。 如果更改导致了任何问题,团队成员可以在 Pull Request 下发布反馈,甚至推送后续提交来修改这个 Pull Request。所有的活动都在这个 Pull Request里之间追踪。
克隆远程仓库到本地
这里讲https方法
复制好连接后,回到我们的机器
使用git clone [链接] 命令来克隆远程仓库
当我们从远程克隆仓库后,Git会自动把本地的master分支和远程的master分支对应起来
远程仓库的默认名称是 origin 。在本地我们可以使用git remote命令,来查看远程库的信息
或者也可以用 git remote -v显示更详细的信息
fetch表示抓取权限,push表示推送权限
向远程仓库推送
首先要配置好用户名和密码
git config --list查看
user.name和user.email要和远程仓库配置的一样
user.name就是这个
这里touch一个file文件并推送到远程仓库
使用 git push [远程主机名] [本地分支名]:[远程分支名]命令
如果本地分支名和远程分支名相同,就可以省略冒号和远程分支名
git push [远程主机名] [本地分支名]
git push时要输入网站的账号和密码
远程仓库就有了新文件file.c
拉取远程仓库
在网站上修改file.c文件,模拟其他人提交(平时不建议直接在远程仓库修改,不安全)
保存后,此时远程仓库要比本地仓库领先一个版本
为了让本地仓库更新到最新版本,我们要拉取下远端代码,并合并到本地。
git pull [远程主机名] [本地分支名]:[远程分支名]命令,用于从远程获取代码并合并到本地的版本
如果本地分支名和远程分支名相同,就可以省略冒号和远程分支名
git pull [远程主机名] [本地分支名]
可以看到file.c已经更新了
配置git
忽略特殊文件
在日常开发中,我们有多个文件会全部提交,但是其中有些文件不想提交到远端,
这时候就可以用到 .gitignore 文件,gitee在创建仓库的时候就可以选择模板
如果当时没有勾选,在工作区手动创建一个也是可以的
表示Git忽略所有.so结尾的文件,除了b.so
创建a.so和b.so两个文件
发现,git并没有管理追踪a.so,但是追踪了b.so
当然有时候我们想添加一个文件到git,但是被.gitignore忽略了
那么可以用git add -f 强制添加
同时也能推送到远程仓库了
注意:如果用-f强制添加后,后续对a.so修改,不加-f也同样会被git管理,提交到远程仓库
如果你发现,.gitignore写得有问题,不知道某个文件是怎么被忽略的
可以用git check-ignore 命令检查
git会告诉你被.ignore的第几行的什么规则限制了
给命令配置别名
有些git命令比较冗长,写得头疼。。但是git支持对命令简化
举个例子,把git status 简化为git st
git config --global alias.st status
--global参数起全局作用,在这台电脑下的所有git仓库都有用