一、 学习GitHub Guides
通过GitHub Guides学习GitHub的使用:
• 01.27.Hello World
• 01.28.Getting started with GitHub Pages
• 01.29.Understanding the GitHub Flow
• 01.30.Forking Projects
• 01.31.Getting your project on GitHub and Contributing to Open Source on GitHub
• 02.01.Be Social
• 02.03.Documenting your projects on GitHub
• 02.04.Making Your Code Citable and Mastering Markdown
• 02.05.Mastering Issues
其他:
• 02.10.gitignore Documentation
二、 GitHub的使用
1、 GitHub有什么用
• 代码托管
• 用作网盘
• 个人主页站点
• 某个具体项目站点
2、 各模块的操作
• r
epository
项目仓库,只对应一个项目(文件夹、文件、图片、视频、其他任何文件)
• master
main definitive branch
master 分支仅作版本发布用,不在master上进行修改,单独建立dev分支去进行修改
• branch
创建branch的时候、master的副本(a branch off of master)、branch的名字最好能描述创建这个branch的意图
一个测试OK的branch、就等于是一个测试OK的版本,这个branch可以不删除、以后可能会需要回溯(或发一个release)
• 所有的修改都在dev分支上进行、在dev分支测试ok后,再merge到master
• 所有在dev分支工作的人、自己去dev和自己的branch去工作,工作完成后向dev branch pull requests
• fork
从别人的项目里面fork一份出来,成为自己的项目,自己可以随意使用
我得到的这一份也有master branch,所以在这上面工作时也要建立一个dev branch
• commit to master
将自己的修改提交到GitHub管理器
• pull request
将本地的修改提交到GitHub
如果提交后仍然发现还有问题,可以继续commit,这些commit会自动加入到当前的request、而不需要重新pull request
• merge
项目作者收到pull request后决定是否merge到master
• Sync
push your changes
up to GitHub.com, push到我fork过来的repository或branch,之后就可以open a pull request
三、 gitignore file语法
0、对于已经被track的文件,就算
.gitignore
file指定了取消git去track他们,只能用git命令行去取消track
1、#后面跟注释
2、需要使用backslash
("
\
")来引用的特殊字符:
\空格、\!、
3、用!来取消设置
4、dect/表示路径、文件夹
5、字符(如foo)将被视为一个路径/文件夹,且是与
同一级的路径/文件夹
6、**/foo表示
所有路径
下的foo文件或foo文件夹
**/foo/bar表示所有包含foo的路径下的bar文件或bar文件夹
7、foo/**表示foo文件夹里面的所有文件
,且是与
.gitignore
file同一级的路径/文件夹
8、foo/**/bar表示foo里面所有包含bar的文件或文件夹
四、 操作问题及其解决步骤
1、 项目站点建立时需要写readme
我建立了B001-Atmega16-platform.github.io这个repository,也选择了theme,同时也提示我说“该站点已经建立”:
但是怎么都打不开这个站点,老是page 404 not found。
于是我猜想可能是readme.md还没有建立,因为上一次也是写好了readme.md之后才去访问的这个站点。
果然、在我写好readme.md之后、这个站点就可以访问了。
2、如何删除本地branch
我将本地add-all-be-done branch做完后、pull request到GitHub,在GitHub.com上merge,并删除了add-all-be-done branch。
此时、在add-all-be-done branch执行Sync也无法找到在本地删除add-all-be-done branch的按钮。
删除本地的add-all-be-done branch的方法是切换到add-all-be-done branch、然后进入setting里面去删除: