🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
http://git.oschina.net/oschina/git-osc/wikis/帮助#工作流程 [TOC] ## 帮助 [页面历史](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9/history) # [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#工作流程)工作流程 * * * ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#安装设置-git)安装设置 git 下载最新版本的git ~~~ http://git-scm.com/downloads ~~~ 当你安装完成git的时候,你需要简单的配置一下,打开终端: ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#用户名)用户名 第一步,你需要告诉git你的名字,这个名字会出现在你的提交记录中。 ~~~ git config --global user.name "你的名字" ~~~ ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#email)Email 然后是你的Email,同样,这个Email也会出现在你的提交记录中,请尽量保持此Email和您的Git@OSC的注册Email一致。 ~~~ git config --global user.email "你的Email" ~~~ ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#clone-和-push)Clone 和 Push Clone 项目 ~~~ git clone http://git.oschina.net/xxxxxx/xxxxxx.git ~~~ 创建特性分支 ~~~ git checkout -b $feature_name ~~~ 写代码,提交变更 ~~~ git commit -am "My feature is ready" ~~~ 将你的提交推送到 Git@OSC ~~~ git push origin $feature_name ~~~ 在提交页面你可以查看你的变更,例如: [http://git.oschina.net/oschina/git-osc/commit/f3dd1c5bae48fa4244e2595a39e750e5606dd9be](http://git.oschina.net/oschina/git-osc/commit/f3dd1c5bae48fa4244e2595a39e750e5606dd9be) ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#创建一个-pull-request)创建一个 pull request 你可以fork任意的公开项目,当你修改了你fork的项目,你可以向源项目提交pull request。项目的作者在审阅过代码后可以决定是否将此变更应用到源项目。 ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#在git-osc上使用svn)在GIT@OSC上使用SVN 使用教程已经整理在[这里](http://git.oschina.net/oschina/git-osc/wikis/%E5%9C%A8GIT%40OSC%E4%B8%8A%E4%BD%BF%E7%94%A8SVN) * * * # [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#ssh-keys)SSH Keys * * * SSH key 可以让你在你的电脑和 Git @ OSC 之间建立安全的加密连接。 你可以按如下命令来生成sshkey ~~~ ssh-keygen -t rsa -C "xxxxx@xxxxx.com"# Creates a new ssh key using the provided email # Generating public/private rsa key pair... ~~~ 查看你的public key,并把他添加到 Git @ OSC [http://git.oschina.net/keys](http://git.oschina.net/keys) ~~~ cat ~/.ssh/id_rsa.pub # ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc.... ~~~ 添加后,在终端(Terminal)中输入 ~~~ ssh -T git@git.oschina.net ~~~ 若返回 ~~~ Welcome to Git@OSC, yourname! ~~~ 则证明添加成功。 * * * # [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#关于权限)关于权限 * * * ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#访客)访客 * 创建issue * 评论 * Clone 和 Pull 项目 * 打包下载代码 * Fork 项目 * 创建 pull request ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#报告者)报告者 * 继承访客的权限 * 私有项目:不能查看代码 * 私有项目:不能下载代码 ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#观察者)观察者 * 继承报告者权限 * 创建wiki * 打包下载代码 * 不能push代码 ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#开发者)开发者 * 创建 issue * 评论 * Clone 和 Pull 项目 * 打包下载代码 * 创建 pull request * 创建分支 * 推送分支 * 删除分支 * 创建标签(里程碑) * 创建 wiki ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#管理员)管理员 * 创建 issue * 评论 * Clone 和 Pull 项目 * 打包下载代码 * 创建 pull request * 创建分支 * 推送分支 * 删除分支 * 创建标签(里程碑) * 创建 wiki * 添加项目成员 * 强制推送分支 * 编辑项目属性 ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#项目组管理员)项目组管理员 * 编辑项目组属性 * 增加成员 * 添加/删除项目 * 设置项目组管理员 * 删除项目组 * 更改成员项目权限 * * * # [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#git-osc-flavored-markdown)Git @ OSC Flavored Markdown * * * Git @ OSC 的markdown基于原markdown做了一下扩展,具体使用如下。 ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#you-can-use-gfm-in-)You can use GFM in: * 提交消息 * 评论 * issues * pull requests * 里程碑 * wiki 页面 ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#跟传统的markdown的区别)跟传统的Markdown的区别 ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#url-自动链接)URL 自动链接 ~~~ 插入的URL不需要做特殊处理,会自动变成链接。 ~~~ ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#emoji表情)Emoji表情 > 支持Emoji表情,参考:[Emoji cheat sheet](http://www.emoji-cheat-sheet.com/) ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#插入代码片段)插入代码片段 可以向如下这种方式插入代码片段,可以在标记后面指定编程语言,如果没有指定语言,编译器会尝试自动识别。 ~~~ ```ruby require 'redcarpet' markdown = Redcarpet.new("Hello World!") puts markdown.to_html ``` ~~~ 将会变成 ~~~ require 'redcarpet' markdown = Redcarpet.new("Hello World!") puts markdown.to_html ~~~ ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#特殊的-git-osc-引用-)特殊的 Git@OSC 引用。 GFM 可以识别一些特殊的标记,并且支持自动补全,例如: * [#123](http://git.oschina.net/oschina/git-osc/issues/123 "Issue: ") (Issue) * !123 (Pull Request) * 1234567 (提交) * :icon: (emoji 表情) ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#如何导入外部的git仓库-)如何导入外部的Git仓库? 因为一些原因暂没有开放一键导入功能。 有需求的可以先按照如下步骤导入其它地方的git仓库(以 github 上的 impress.js 为例): **1.** 从原始地址 clone 一份 bare 仓库: ~~~ git clone --bare https://github.com/bartaz/impress.js.git ~~~ **2.** 在 GIT@OSC 上 [创建一个项目](http://git.oschina.net/projects/new) **3.** 以 mirror 的方式把刚才 clone 的项目 push 到 GIT@OSC 上: (如果提示输入 git 用户密码,请到[http://git.oschina.net/keys](http://git.oschina.net/keys) 添加 SSH Key) ~~~ cd impress.js.git git push --mirror git@git.oschina.net:username/impress-js.git ~~~ 这种方式的好处是:可以完整地保留原项目的所有 branch 和 tag 信息。 提示:首次push内容量较大,推荐采用ssh方式push,传输更快,更稳定,如果项目较小,也可以采用http方式push。 更多导入办法,请[点击这里](http://www.oschina.net/question/82993_133520) ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#项目组的使用)项目组的使用 项目组可以使用户更加方便的添加用户到项目中 **1.** 创建项目组:[http://git.oschina.net/teams/new](http://git.oschina.net/teams/new) **2.** 添加用户:可以设置两种权限,一种是用户默认在项目中的权限,一种是项目组管理权限 **3.** 指派到项目:如果选择开发者,那么将会按照用户在项目组中的默认权限为项目添加;如果选择管理员,那么项目组中的所有成员将会成为项目的管理员 **4.** 撤销项目:撤销项目将会把在项目属于项目组中的成员移除,如果成员同样存在于此项目别的项目组中,那么将会更新为别的项目组中的相应的项目权限。 **Tips** * 项目组只有项目组的成员可以访问 * 项目组的名称是全站唯一的 * 一个用户存在于两个项目组a,b中,在a中的项目权限是管理员,在b中的项目权限是开发者,如果项目组a,b同时指派到项目pro,那么将项目组a从pro中移除之后,此用户在pro中的权限将会从管理员降为开发者。 ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#readme-规则)README 规则 **1.** git@osc README 文件支持多种文件格式以及命名规则。 例如: README, README.md, README.org... 或者: README_zh.md, README_en.md... **2.** 若有多个README文件,则优先显示文件名包含'_zh','_cn'等中文标注的README文件。 例如同一目录包含两个README文件:README_en.md README_zh.md 则显示README为: README_zh.md ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#改写历史-去除大文件)改写历史,去除大文件 ~~~ git filter-branch --tree-filter 'rm -f path/to/large/files' --tag-name-filter cat -- --all git push origin --tags --force git push origin --all --force ~~~ 详细参见:[这里](http://my.oschina.net/jfinal/blog/215624) ## [](http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#继续阅读)继续阅读 你可以点击这里阅读权威的git书籍[ProGit](http://git.oschina.net/progit) 以下为收集的开源中国社区热心网友制作的git@osc跟各种IDE,软件的集成办法,可以点击查看: * [eclipse中egit插件使用-图文并茂-详细](http://my.oschina.net/songxinqiang/blog/192567) * [Visual Studio 2012连接到osc@git](http://my.oschina.net/gal/blog/141442) * [TortoiseGit配合msysGit在Git@OSC代码托管的傻瓜教程](http://my.oschina.net/icelily/blog/141342) * [利用eclipse的git插件EGit与git@osc交互](http://my.oschina.net/kzhou/blog/132146) * [Git初体验](http://my.oschina.net/dxqr/blog/134811) * [在win7系统下使用TortoiseGit(乌龟git)简单操作Git@OSC](http://my.oschina.net/longxuu/blog/141699) * [Xcode连接git @ osc](http://my.oschina.net/zxs/blog/142544) * [git@osc(git)中team开发、fork和pull request的用法](http://my.oschina.net/kzhou/blog/150290) * [eclipse的git插件整合Git@OSC](http://my.oschina.net/u/861562/blog/151975) * [Eclipse使用EGit管理git@OSC项目](http://my.oschina.net/China2012/blog/174874) * [如何导入外部Git仓库到中国源代码托管平台(Git@OSC)](http://www.oschina.net/question/82993_133520) * [https 方式使用Git@OSC设置密码的方式](http://git.oschina.net/oschina/git-osc/issues/2586) 衷心感谢网友 [@nekocode](http://my.oschina.net/gal) [@铂金便便](http://my.oschina.net/icelily) [@恺哥](http://my.oschina.net/kzhou) [@彼岸花开花落时](http://my.oschina.net/bianhuakaihualuoshi) [@whaon](http://my.oschina.net/dxqr) [@小小程序员](http://my.oschina.net/longxuu) [@老左](http://my.oschina.net/zxs) [](http://my.oschina.net/simaben/home)[@司马奔 ](http://git.oschina.net/simaben)[](http://my.oschina.net/simaben/home)[@枫叶飘零](http://my.oschina.net/u/861562) [@大漠真人](http://my.oschina.net/China2012)细心整理分享资料。