Git 初入
1. 配置
如果是第一次使用 Git,你需要设置署名和邮箱:
$ git config --global user.name "用户名"
$ git config --global user.email "电子邮箱"
2. 克隆仓库代码到本地、切分支
将代码仓库 clone 到本地,其实就是将代码复制到你的机器里,并交由 Git 来管理。
$ git clone git@github.com:someone/symfony-docs-chs.git
切到对应的开发分支上去。
- 如果开发分支已存在
$ git checkout dev
- 如果开发分支不存在,需要基于 master 分支切出来一个 dev 的开发分支
$ git checkout -b dev origin/master
3. 添加工作区代码到暂存区
你可以修改复制到本地的代码了。当你觉得完成了一定的工作量,想做阶段性的提交。向这个本地的代码仓库添加当前目录的所有变动。
$ git add .
或者只是添加某个文件:
$ git add -p
4. 查看工作区的状态
我们可以输入
$ git status
来看看现在的状态,如图是添加之前的:
下面是添加之后的:
可以看到状态的变化时从红色到绿色,即 unstage 到 add。
5. 提交信息
然后输入你的提交信息。
$ git commit -m 'fix(type):msg'
以下面这种规范去规范的提交。
<type>(<scope>): <subject> 描述主要修改类型和内容
✨feat:msg新功能、新特性🐛fix(issue No):msg修改 bug📝docs:msg文档修改dx:msg分隔🎨style:msg代码格式修改, 注意不是 css 修改(例如分号修改)♻️refactor:msg重构⏪revertrevert之前的commit⚡️perf更改代码,以提高性能(在不影响代码内部行为的前提下,对程序性能进行优化)✅test测试用例新增、修改workflow:msg工作流相关文件修改🎉build影响项目构建或依赖项修改🎉release:msg发布新版本ci:msg持续集成相关文件修改⏫chore:msg构建过程, 辅助工具升级. 如升级依赖, 升级构建工具types类型wip:msg半成品的- 🔒 safe: 修复安全问题
6. 拉、推代码到分支上
先拉(pull)本分支上的最新代码,再推(push)到本分支上。先拉代码保证远程同分支上的代码和本地的一致,如果不一致(即两个改了同一个文件),这时就需要在工作区修改完毕后在推代码。
$ git pull origin dev
$ git push origin dev
7. 删除分支
查看本地分支 git branch
- 删除本地分支
git branch -d dev - 删除本地的远程分支
git branch -r -D origin/dev - 远程删除git服务器上的分支
git push origin -d dev
GitHub 与 Git
Git一个分布式的版本控制系统,最初有 Linus Torvalds写,用作 Linux 代码的管理。在推出后,Git 在其他项目中取得了很大的成功,尤其是在 Ruby 社区中。
GitHub 可以托管各种 git 库,并提供一个 web 界面,GitHub 的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单;首先点击项目站点的 "fork" 的按钮,然后将代码检出并将修改加入到分出的代码库中,最后通过内建的 "pull request" 机制向项目负责人申请代码合并。
在 GitHub 创建项目
接着,我们试试在上面创建一个项目。
就会有下面的提醒;它提供多种方式的创建方法。
...or create a new repository on the command line
echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M master
git remote add origin https://github.com/wenreq/test.git
git push -u origin master
…or push an existing repository from the command line
git remote add origin https://github.com/wenreq/test.git
git branch -M master
git push -u origin master
如果你完成了上面的步骤之后,那么我想你知道你需要怎么样的项目。
Pull Request
处理创建项目之外,我们也可以创建 Pull Request 来做贡献。
我的第一个 PR
我的第一个 PR 是给一个小的 JS 业务函数库的 Pull Request。原因比较简单,是因为它的 README.md 写错了,导致我无法进行下一步。