關(guān)于oschina-git、Git、Svn的使用

Home

關(guān)于Gitee

Gitee 是開(kāi)源中國(guó)社區(qū)團(tuán)隊(duì)基于開(kāi)源項(xiàng)目 GitLab 開(kāi)發(fā)的在線代碼托管平臺(tái)。

每一個(gè)Gitee 賬號(hào)可創(chuàng)建 1000 個(gè)項(xiàng)目,不限公有或私有項(xiàng)目,并已宣布代碼托管服務(wù)永久免費(fèi)。

Gitee 的功能

Gitee 除了提供最基礎(chǔ)的 Git 代碼托管之外,還提供代碼在線查看、歷史版本查看、Fork、Pull Request、打包下載任意版本、Issue、Wiki 等方便管理、開(kāi)發(fā)、協(xié)作、共享的功能,具體請(qǐng)查看幫助

意見(jiàn)和建議

在您使用 Gitee 的過(guò)程中有任何意見(jiàn)和建議,請(qǐng)到此項(xiàng)目提交Issue,我們的開(kāi)發(fā)者會(huì)在這里跟您溝通。

幫助

在使用 Gitee 的過(guò)程中有任何不明白的問(wèn)題,可以查閱碼云幫助文檔查看幫助說(shuō)明,也歡迎您到開(kāi)源中國(guó)社區(qū)上提問(wèn),也可以加入我們開(kāi)源中國(guó)官方Git交流群:515965326。

Git 版本控制入門(mén)

如果你不熟悉Git,點(diǎn)此查看權(quán)威Git書(shū)籍 ProGit(中文版),新手老鳥(niǎo)均適合。

Git參考手冊(cè):http://gitref.org/zh/index.html

Git官網(wǎng):http://git-scm.com

Git客戶(hù)端下載地址: 官方GitTortoiseGitSourceTree

Git 手機(jī)APP下載地址:點(diǎn)擊這里

Git手冊(cè):http://git-scm.com/docs

網(wǎng)友整理的碼云教程,請(qǐng)查看這里

一份很好的 Git 入門(mén)教程,點(diǎn)擊這里查看

Git快速入門(mén)(gif動(dòng)畫(huà)版),點(diǎn)擊這里查看

碼云 快速使用

以下步驟以 oschina/git-osc 倉(cāng)庫(kù)為例子,在您使用 Gitee 的過(guò)程中,具體鏈接地址請(qǐng)?zhí)顚?xiě)對(duì)應(yīng)的倉(cāng)庫(kù)地址。

  • 快速設(shè)置:

    如果您知道該怎么操作,直接使用下面的地址:

    https://gitee.com/oschina/git-osc.git  
    git@gitee.com:oschina/git-osc.git  
    

我們強(qiáng)烈建議所有的 Git 倉(cāng)庫(kù)都有一個(gè)README,LICENSE,.gitignore文件。
Git入門(mén)?查看 幫助 , Visual Studio / TortoiseGit / Eclipse / Xcode 下如何連接本站, 如何導(dǎo)入項(xiàng)目

  • 簡(jiǎn)易的命令行入門(mén)教程:
    1. Git 全局設(shè)置:

      # 用戶(hù)名和郵箱需要填寫(xiě)您在 碼云 對(duì)應(yīng)的用戶(hù)信息
      git config --global user.name "username"
      git config --global user.email "user email"
      
    2. 在 碼云 新建一個(gè)倉(cāng)庫(kù),我們以 oschina/git-osc為例

    3. 在本地創(chuàng)建 Git 倉(cāng)庫(kù):

      # git remote add 應(yīng)添加您對(duì)應(yīng)的倉(cāng)庫(kù)地址,可為 HTTPS 或 SSH
      mkdir git-osc  
      cd git-osc  
      git init  
      touch README.md  
      git add  README.md  
      git commit -m 'first commit'
      git remote add origin https://gitee.com/oschina/git-osc.git  
      git push -u origin master
      
    4. 如果您在本地已經(jīng)有需要上傳到 碼云 的項(xiàng)目,那么您需要執(zhí)行如下命令:

      cd existing_git_repo
      git remote add origin https://gitee.com/oschina/git-osc.git
      git push -u origin master
      

FAQ

這里列出有關(guān)中國(guó)源代碼托管平臺(tái)有關(guān)的最常被問(wèn)到的問(wèn)題,以及其問(wèn)題的解答。

問(wèn):為什么推送的時(shí)候大文件推不上去?

答:Gitee 單個(gè)倉(cāng)庫(kù)限制為1G,單個(gè)文件限制100M。

問(wèn):為什么不能修改個(gè)性后綴?

答:個(gè)性后綴會(huì)作為您項(xiàng)目地址的一部分,這個(gè)地址是要配置在您的本地倉(cāng)庫(kù)中的,如果修改個(gè)性后綴,您的本地項(xiàng)目地址也會(huì)更改,而且所有使用這個(gè)項(xiàng)目的人的本地項(xiàng)目地址都要更改,非常不便。因?yàn)檫@樣的原因,我們不提供自助修改個(gè)性后綴的功能,請(qǐng)您在注冊(cè)的時(shí)候謹(jǐn)慎填寫(xiě)。

問(wèn):為什么代碼托管平臺(tái)的密碼跟開(kāi)源中國(guó)的密碼不一致?

答:代碼托管平臺(tái)與開(kāi)源中國(guó)目前是兩套用戶(hù)系統(tǒng),獨(dú)立運(yùn)行。您必須在注冊(cè)的過(guò)程中,填寫(xiě)一些必要信息,包括密碼,該密碼跟開(kāi)源中國(guó)沒(méi)有關(guān)系,用來(lái)登錄代碼托管平臺(tái),以及使用http方式訪問(wèn)代碼倉(cāng)庫(kù)時(shí)驗(yàn)證身份。后期將計(jì)劃整合開(kāi)源中國(guó)的現(xiàn)有用戶(hù)系統(tǒng),但到目前為止還是兩套。

問(wèn):為什么公有項(xiàng)目無(wú)法轉(zhuǎn)換為私有項(xiàng)目?

答:項(xiàng)目一旦公開(kāi),即被認(rèn)為是源碼已經(jīng)公開(kāi),已經(jīng)泄漏,再轉(zhuǎn)為私有項(xiàng)目無(wú)意義。所以請(qǐng)您在創(chuàng)建項(xiàng)目的時(shí)候仔細(xì)選擇。

問(wèn):為什么我的項(xiàng)目是XX語(yǔ)言,卻被識(shí)別為YY語(yǔ)言?

答:對(duì)于公有項(xiàng)目,我們后臺(tái)服務(wù)每隔一段時(shí)間,執(zhí)行一次編程語(yǔ)言探測(cè),但畢竟是機(jī)器探測(cè),難免有誤,我們會(huì)盡力使探測(cè)結(jié)果更準(zhǔn)確,但一旦出現(xiàn)錯(cuò)誤,您可以在項(xiàng)目設(shè)置頁(yè)面手動(dòng)指定項(xiàng)目的編程語(yǔ)言。

問(wèn):為什么有的項(xiàng)目不能提交Issue、Pull Request?

答:項(xiàng)目的所有者可以設(shè)置項(xiàng)目是否接受Issue和Pull Request。

問(wèn):為什么私有項(xiàng)目不可以Star、Watch?

答:私有項(xiàng)目被設(shè)置為只有項(xiàng)目組內(nèi)成員可見(jiàn),項(xiàng)目組內(nèi)成員默認(rèn)Watch該項(xiàng)目,即項(xiàng)目組內(nèi)成員可以查看到該項(xiàng)目的所有動(dòng)態(tài)。Star、Watch屬社交化編程范疇,對(duì)于私有項(xiàng)目也沒(méi)有意義。

問(wèn):為什么在push的時(shí)候,出現(xiàn)了413錯(cuò)誤,push失???

答:為了提供更穩(wěn)定更快的服務(wù),我們的http服務(wù)器nginx設(shè)置了單次上傳大小限制為200M,如果您的單次push超過(guò)200M,將被服務(wù)器拒絕,返回413錯(cuò)誤。遇到這種問(wèn)題,可以在https://gitee.com 頁(yè)面上傳SSH公鑰,通過(guò)SSH通道push即可。

問(wèn):為什么我收不到激活/通知/重置密碼等郵件?

答:本站采用SendCloud服務(wù)發(fā)送郵件,我們盡力保證郵件快速送達(dá),但是發(fā)送郵件仍然可能會(huì)有延遲,正常情況下都可以在10分鐘內(nèi)收到郵件,如果你沒(méi)有收到郵件,可查看是否被識(shí)別為垃圾郵件,如果垃圾郵件中仍然沒(méi)有,可通過(guò)建議,或者在開(kāi)源中國(guó)社區(qū)上告知我們。

Git-使用常見(jiàn)問(wèn)題

1、我應(yīng)該如何合并沖突?

沖突合并一般是因?yàn)樽约旱谋镜刈龅奶峤缓头?wù)器上的提交有差異,并且這些差異中的文件改動(dòng),Git不能自動(dòng)合并,那么就需要用戶(hù)手動(dòng)進(jìn)行合并

如我這邊執(zhí)行git pull origin master

如果Git能夠自動(dòng)合并,那么過(guò)程看起來(lái)是這樣的

輸入圖片說(shuō)明

拉取的時(shí)候,Git自動(dòng)合并,并產(chǎn)生了一次提交。

如果Git不能夠自動(dòng)合并,那么會(huì)提示

輸入圖片說(shuō)明

這個(gè)時(shí)候我們就可以知道README.MD有沖突,需要我們手動(dòng)解決,修改README.MD解決沖突

輸入圖片說(shuō)明

可以看出來(lái),在1+1=幾的這行代碼上產(chǎn)生了沖突,解決沖突的目標(biāo)是保留期望存在的代碼,這里保留1+1=2,然后保存退出。

輸入圖片說(shuō)明

退出之后,確保所有的沖突都得以解決,然后就可以使用git add . git commit -m "fixed conflicts" git push origin master即可完成一次沖突的合并。

整個(gè)過(guò)程看起來(lái)是這樣的

輸入圖片說(shuō)明

License

開(kāi)源許可證的一些介紹

Apache v2 License

Apache Licence是著名的非盈利開(kāi)源組織Apache采用的協(xié)議。該協(xié)議和BSD類(lèi)似,同樣鼓勵(lì)代碼共享和尊重原作者的著作權(quán),同樣允許代碼修改,再發(fā)布(作為開(kāi)源或商業(yè)軟件)。需要滿(mǎn)足的條件也和BSD類(lèi)似:

  1. 需要給代碼的用戶(hù)一份Apache Licence
  2. 如果你修改了代碼,需要再被修改的文件中說(shuō)明。
  3. 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來(lái)代碼中的協(xié)議,商標(biāo),專(zhuān)利聲明和其他原來(lái)作者規(guī)定需要包含的說(shuō)明。
  4. 如果再發(fā)布的產(chǎn)品中包含一個(gè)Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現(xiàn)為對(duì)Apache Licence構(gòu)成更改。

Apache Licence也是對(duì)商業(yè)應(yīng)用友好的許可。使用者也可以在需要的時(shí)候修改代碼來(lái)滿(mǎn)足需要并作為開(kāi)源或商業(yè)產(chǎn)品發(fā)布/銷(xiāo)售。

MIT License

MIT許可證之名源自麻省理工學(xué)院(Massachusetts Institute of Technology, MIT),又稱(chēng)「X條款」(X License)或「X11條款」(X11 License)

MIT內(nèi)容與三條款BSD許可證(3-clause BSD license)內(nèi)容頗為近似,但是賦予軟體被授權(quán)人更大的權(quán)利與更少的限制。

被授權(quán)人有權(quán)利使用、復(fù)制、修改、合并、出版發(fā)行、散布、再授權(quán)及販?zhǔn)圮涹w及軟體的副本。

被授權(quán)人可根據(jù)程式的需要修改授權(quán)條款為適當(dāng)?shù)膬?nèi)容。

在軟件和軟件的所有副本中都必須包含版權(quán)聲明和許可聲明。

此授權(quán)條款并非屬copyleft的自由軟體授權(quán)條款,允許在自由/開(kāi)放源碼軟體或非自由軟體(proprietary software)所使用。

此亦為MIT與BSD(The BSD license, 3-clause BSD license)本質(zhì)上不同處。

MIT條款可與其他授權(quán)條款并存。另外,MIT條款也是自由軟體基金會(huì)(FSF)所認(rèn)可的自由軟體授權(quán)條款,與GPL相容。

GPL v2

GPL 是GNU通用公共許可協(xié)議(GNU General Public License)的簡(jiǎn)稱(chēng),我們很熟悉的 Linux 和 Git 就是采用了 GPL,該協(xié)議力圖保障你分享和修改某程序全部版本的權(quán)利——確保自由軟件對(duì)其用戶(hù)來(lái)說(shuō)是自由的。

所謂自由軟件,強(qiáng)調(diào)自由,而非免費(fèi)。GNU通用公共許可協(xié)議設(shè)計(jì)用于確保你享有分發(fā)自由軟件的自由(你可以為此服務(wù)收費(fèi)),確保你可以在需要的時(shí)候獲得這些軟件的源碼,確保你可以修改這些軟件或者在新的自由軟件中復(fù)用其中某些片段,并且確保你在這方面享有知情權(quán)。

自由權(quán)利包括復(fù)制、分發(fā)和修改。源碼是指所有修改作品及生成、安裝、運(yùn)行(對(duì)可執(zhí)行作品而言)目標(biāo)碼所需的源碼,包括控制上述行為的腳本,但其中不包括系統(tǒng)庫(kù)、通用工具。

簡(jiǎn)而言之,如果你分發(fā)自由軟件的副本,那么副本中必須包含許可協(xié)議和版權(quán)聲明,并確保接收者能夠獲取到該副本的源代碼及其依賴(lài)庫(kù)的源碼。

Artistic License 2.0

Artistic License,又稱(chēng)藝術(shù)許可協(xié)議(英語(yǔ):Artistic License),通常指最初的藝術(shù)許可協(xié)議(1.0版),是一個(gè)自由軟件授權(quán)條款,主要用在官方發(fā)布的Perl解釋器和大部分CPAN模塊的授權(quán)。原始的藝術(shù)許可協(xié)議是由Perl的創(chuàng)始人Larry Wall編寫(xiě)發(fā)布的。

BSD 2-Clause license

BSD允許使用者修改和重新發(fā)布代碼(以其他協(xié)議形式),允許閉源商業(yè)發(fā)布和銷(xiāo)售。

BSD鼓勵(lì)代碼共享的同時(shí),要求尊重代碼作者的著作權(quán)。

使用BSD協(xié)議,需要遵守以下規(guī)則:

  1. 再發(fā)布的產(chǎn)品中包含源代碼,則在源代碼中必須帶有原來(lái)代碼中的BSD協(xié)議;
  2. 如果再發(fā)布的只是二進(jìn)制類(lèi)庫(kù)/軟件,則需要在類(lèi)庫(kù)/軟件的文檔那個(gè)和版權(quán)聲明中包含原來(lái)代碼中的BSD協(xié)議。

Affero GPL

是一個(gè)廣泛被使用的自由軟件特許條款,最初由Affero, Inc撰寫(xiě)。此特許條款最新版本為“第3版”(v3),2007年11月發(fā)布。Affero 通用公眾特許條款是改自GNU通用公眾特許條款,并加入額外條款,其目的是為了Copyleft條款應(yīng)用于在網(wǎng)絡(luò)上運(yùn)行的應(yīng)用程式(如Web應(yīng)用),從而避免有人以應(yīng)用服務(wù)提供商方式逃避GNU通用公眾特許條款。

LGPL v2.1

LGPL是GPL的一個(gè)為主要為類(lèi)庫(kù)使用設(shè)計(jì)的開(kāi)源協(xié)議。和GPL要求任何使用/修改/衍生之GPL類(lèi)庫(kù)的的軟件必須采用GPL協(xié)議不同。LGPL允許商業(yè)軟件通過(guò)類(lèi)庫(kù)引用(link)方式使用LGPL類(lèi)庫(kù)而不需要開(kāi)源商業(yè)軟件的代碼。這使得采用LGPL協(xié)議的開(kāi)源代碼可以被商業(yè)軟件作為類(lèi)庫(kù)引用并發(fā)布和銷(xiāo)售。

但是如果修改LGPL協(xié)議的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用LGPL協(xié)議。因此LGPL協(xié)議的開(kāi)源代碼很適合作為第三方類(lèi)庫(kù)被商業(yè)軟件引用,但不適合希望以LGPL協(xié)議代碼為基礎(chǔ),通過(guò)修改和衍生的方式做二次開(kāi)發(fā)的商業(yè)軟件采用。

GPL/LGPL都保障原作者的知識(shí)產(chǎn)權(quán),避免有人利用開(kāi)源代碼復(fù)制并開(kāi)發(fā)類(lèi)似的產(chǎn)品

BSD (3-Clause) License

BSD允許使用者修改和重新發(fā)布代碼(以其他協(xié)議形式),允許閉源商業(yè)發(fā)布和銷(xiāo)售。

BSD鼓勵(lì)代碼共享的同時(shí),要求尊重代碼作者的著作權(quán)。

使用BSD協(xié)議,需要遵守以下規(guī)則:

  1. 再發(fā)布的產(chǎn)品中包含源代碼,則在源代碼中必須帶有原來(lái)代碼中的BSD協(xié)議;
  2. 如果再發(fā)布的只是二進(jìn)制類(lèi)庫(kù)/軟件,則需要在類(lèi)庫(kù)/軟件的文檔那個(gè)和版權(quán)聲明中包含原來(lái)代碼中的BSD協(xié)議;
  3. 不可以用開(kāi)源代碼的“作者/機(jī)構(gòu)的名字”或“原來(lái)產(chǎn)品的名字”做市場(chǎng)推廣。

Eclipse Public License v1.0

EPL允許使用者任意使用、復(fù)制、分發(fā)、傳播、展示、修改以及改后閉源的二次商業(yè)發(fā)布。

使用EPL協(xié)議,需要遵守以下規(guī)則:

  1. 當(dāng)一個(gè)代碼貢獻(xiàn)者將源碼的整體或部分再次開(kāi)源發(fā)布的時(shí)候,必須繼續(xù)遵循EPL開(kāi)源協(xié)議來(lái)發(fā)布,而不能改用其他協(xié)議發(fā)布.除非你得到了原“源碼”擁有者的授權(quán);
  2. EPL協(xié)議下,你可以將源碼不做任何修改來(lái)商業(yè)發(fā)布.但如果你要發(fā)布修改后的源碼,或者當(dāng)你再發(fā)布的是二進(jìn)制文件的時(shí)候,你必須聲明它的源代碼是可以獲取的,而且要告知獲取方法;
  3. 當(dāng)你需要將EPL下的源碼作為一部分跟其他私有的源碼混和著成為一個(gè)Project發(fā)布的時(shí)候,你可以將整個(gè)Project/Product以私人的協(xié)議發(fā)布,但要聲明哪一部分代碼是EPL下的,而且聲明那部分代碼繼續(xù)遵循EPL;
  4. 獨(dú)立的模塊(Separate Module),不需要開(kāi)源。

LGPL v3

相對(duì)于LGPL v2,不僅要求用戶(hù)公布修改的源代碼,還阻止了其他一些私有化的方式,例如:不得將產(chǎn)品內(nèi)的軟件“tivo化”或“鎖定”,或者(用行業(yè)內(nèi)的話來(lái)說(shuō))“安全啟動(dòng)”,也就是說(shuō),不得以任何形式阻止用戶(hù)修改產(chǎn)品內(nèi)的以 GPL 許可協(xié)議發(fā)布的軟件。

Mozilla Public License Version 2.0

MPL是The Mozilla Public License的簡(jiǎn)寫(xiě),是1998年初Netscape的 Mozilla小組為其開(kāi)源軟件項(xiàng)目設(shè)計(jì)的軟件許可證。MPL許可證出現(xiàn)的最重要原因就是,Netscape公司認(rèn)為GPL許可證沒(méi)有很好地平衡開(kāi)發(fā)者對(duì) 源代碼的需求和他們利用源代碼獲得的利益。同著名的GPL許可證和BSD許可證相比,MPL在許多權(quán)利與義務(wù)的約定方面與它們相同(因?yàn)槎际欠螼SIA 認(rèn)定的開(kāi)源軟件許可證)。但是,相比而言MPL還有以下幾個(gè)顯著的不同之處:

  • MPL雖然要求對(duì)于經(jīng)MPL許可證發(fā)布的源代碼的修改也要以MPL許可證的方式再許可出來(lái),以保證其他人可以在MPL的條款下共享源代碼。但是,在MPL 許可證中對(duì)“發(fā)布”的定義是“以源代碼方式發(fā)布的文件”,這就意味著MPL允許一個(gè)企業(yè)在自己已有的源代碼庫(kù)上加一個(gè)接口,除了接口程序的源代碼以MPL 許可證的形式對(duì)外許可外,源代碼庫(kù)中的源代碼就可以不用MPL許可證的方式強(qiáng)制對(duì)外許可。這些,就為借鑒別人的源代碼用做自己商業(yè)軟件開(kāi)發(fā)的行為留了一個(gè) 豁口。
  • MPL許可證第三條第7款中允許被許可人將經(jīng)過(guò)MPL許可證獲得的源代碼同自己其他類(lèi)型的代碼混合得到自己的軟件程序。
  • 對(duì)軟件專(zhuān)利的態(tài)度,MPL許可證不像GPL許可證那樣明確表示反對(duì)軟件專(zhuān)利,但是卻明確要求源代碼的提供者不能提供已經(jīng)受專(zhuān)利保護(hù)的源代碼(除非他本人是 專(zhuān)利權(quán)人,并書(shū)面向公眾免費(fèi)許可這些源代碼),也不能在將這些源代碼以開(kāi)放源代碼許可證形式許可后再去申請(qǐng)與這些源代碼有關(guān)的專(zhuān)利。
  • 對(duì)源代碼的定義
    而在MPL(1.1版本)許可證中,對(duì)源代碼的定義是:“源代碼指的是對(duì)作品進(jìn)行修改最優(yōu)先擇 取的形式,它包括:所有模塊的所有源程序,加上有關(guān)的接口的定義,加上控制可執(zhí)行作品的安裝和編譯的‘原本’(原文為‘Script’),或者不是與初始 源代碼顯著不同的源代碼就是被源代碼貢獻(xiàn)者選擇的從公共領(lǐng)域可以得到的程序代碼?!?/li>
  • MPL許可證第3條有專(zhuān)門(mén)的一款是關(guān)于對(duì)源代碼修改進(jìn)行描述的規(guī)定,就是要求所有再發(fā)布者都得有一個(gè)專(zhuān)門(mén)的文件就對(duì)源代碼程序修改的時(shí)間和修改的方式有描述。

GPL v3

GPL v3與GPL v2類(lèi)似。區(qū)別在于,不僅要求用戶(hù)公布修改的源代碼,還阻止了其他一些私有化的方式,例如:不得將產(chǎn)品內(nèi)的軟件“tivo化”或“鎖定”,或者(用行業(yè)內(nèi)的話來(lái)說(shuō))“安全啟動(dòng)”,也就是說(shuō),不得以任何形式阻止用戶(hù)修改產(chǎn)品內(nèi)的以 GPL 許可協(xié)議發(fā)布的軟件。

Public Domain

Public Domain 是人類(lèi)的一部分作品與一部分知識(shí)的總匯,可以包括文章、藝術(shù)品、音樂(lè)、科學(xué)、發(fā)明等等。對(duì)于領(lǐng)域內(nèi)的知識(shí)財(cái)產(chǎn),任何個(gè)人或團(tuán)體都不具所有權(quán)益(所有權(quán)益通常由版權(quán)或?qū)@w現(xiàn))。這些知識(shí)發(fā)明屬于公有文化遺產(chǎn),任何人可以不受限制地使用和加工它們(此處不考慮有關(guān)安全、出口等的法律)。創(chuàng)立版權(quán)制度的初衷是借由給予創(chuàng)作者一段時(shí)期的專(zhuān)有權(quán)利作為(經(jīng)濟(jì))刺激以鼓勵(lì)作者從事創(chuàng)作。當(dāng)專(zhuān)有權(quán)利期間屆止,作品便進(jìn)入公有領(lǐng)域。公有領(lǐng)域的作品由于沒(méi)有專(zhuān)屬權(quán)利人,因此公眾有權(quán)自由使用它們。

WebHook-使用簡(jiǎn)介

簡(jiǎn)介:

Git@OSC鉤子功能(callback),是幫助用戶(hù)push了代碼后,自動(dòng)回調(diào)一個(gè)您設(shè)定的http地址。 這是一個(gè)通用的解決方案,用戶(hù)可以自己根據(jù)不同的需求,來(lái)編寫(xiě)自己的腳本程序(比如發(fā)郵件,自動(dòng)部署等);目前,webhook支持5種觸發(fā)方式,支持復(fù)選,如圖:
輸入圖片說(shuō)明
其中,Push是指您的項(xiàng)目被您或者該項(xiàng)目的開(kāi)發(fā)者push了代碼,Tag Push 是指您新建了tag,Issue是指您的項(xiàng)目創(chuàng)建、更改內(nèi)容、關(guān)閉、重新打開(kāi)issue,評(píng)論是指任何用戶(hù)在您的issue下發(fā)表了評(píng)論,合并請(qǐng)求是指您的項(xiàng)目被人提交了Pull Request。

說(shuō)明:

  • 請(qǐng)求的方式為POST請(qǐng)求
  • 格式為Json
  • 超時(shí)為5秒(如果程序工作時(shí)間較長(zhǎng),建議異步操作。)

Post數(shù)據(jù)

為了保證安全以及識(shí)別數(shù)據(jù)來(lái)源,我們會(huì)在post數(shù)據(jù)中附帶您創(chuàng)建hooks時(shí)填寫(xiě)的密碼,請(qǐng)注意,該密碼是明文

如何創(chuàng)建WebHook

關(guān)于創(chuàng)建,在項(xiàng)目頁(yè)面點(diǎn)擊管理然后點(diǎn)擊圖中紅色框中部分,如圖:

輸入圖片說(shuō)明

然后再圖中所示的地方填寫(xiě)post數(shù)據(jù)接收的地址以及密碼:

輸入圖片說(shuō)明

請(qǐng)注意,一定要保證填寫(xiě)的地址是可以訪問(wèn)的,密碼也是必須的,不然無(wú)法創(chuàng)建成功,如果一切都正常,你將會(huì)在刷新后的本頁(yè)面看到一個(gè)類(lèi)似的東西

輸入圖片說(shuō)明

這樣你就創(chuàng)建好了一個(gè)WebHook

數(shù)據(jù)格式

Push的Hook發(fā)送的數(shù)據(jù)類(lèi)似于:

hook=
{
    "password": "hod20x4hnkecy63", 
    "hook_name": "push_hooks", 
    "push_data": {
        "before": "26c9fb3533d1c63e3b822d58a8831b1caf6d9cd7", 
        "after": "219aa13d45276a5cae7436ecc66053da67ec2a2d", 
        "ref": "refs/heads/master", 
        "user_id": 449815, 
        "user_name": "gitlabu6d4bu8bd5u8d26u53f72", 
        "user": {
            "id": 449815, 
            "email": "gitlabtest_2@gitlab.com", 
            "name": "gitlabu6d4bu8bd5u8d26u53f72", 
            "time": "2015-11-06T14:51:55+08:00"
        }, 
        "repository": {
            "name": "test_gitosc_20151106145021322", 
            "url": "git@git.oschina.net:gitlab_test_1/test_gitosc_20151106145021322.git", 
            "description": "test_gitosc_20151106145021322 testting", 
            "homepage": "http://git.oschina.net/gitlab_test_1/test_gitosc_20151106145021322"
        }, 
        "commits": [
            {
                "id": "219aa13d45276a5cae7436ecc66053da67ec2a2d", 
                "message": "commit_access_test", 
                "timestamp": "2015-11-06T14:50:47+08:00", 
                "url": "http://git.oschina.net/gitlab_test_1/test_gitosc_20151106145021322/commit/219aa13d45276a5cae7436ecc66053da67ec2a2d", 
                "author": {
                    "name": "gitlab_test_2", 
                    "email": "gitlabtest_2@gitlab.com", 
                    "time": "2015-11-06T14:50:47+08:00"
                }
            }
        ], 
        "total_commits_count": 1, 
        "commits_more_than_ten": false
    }
}

Tag Push的push數(shù)據(jù)類(lèi)似于:

hook=
{
    "password": "25b3pzwtxwu8as9", 
    "hook_name": "tag_push_hooks", 
    "push_data": {
        "ref": "refs/tags/pke1de6qpjbwpz9", 
        "before": "00000000", 
        "after": "1b0355de43a8e24ef59baa4557d4617732ed1d1b"
    }
}

Issue的push數(shù)據(jù)類(lèi)似于:

hook=
{
    "password": "671vmti2lkhmmqv", 
    "hook_name": "issue_hooks", 
    "push_data": {
        "id": 361909, 
        "title": "x2tf25k8p0nrkoj", 
        "state": "closed", 
        "assignee": null, 
        "milestone": null
    }
}

評(píng)論的push數(shù)據(jù)類(lèi)似于:

hook=
{
    "password": "e7i6y15rji72sof", 
    "hook_name": "note_hooks", 
    "push_data": {
        "id": 212599, 
        "note": "_u72b6u6001u66f4u6539u4e3a **u5df2u5173u95ed**_", 
        "noteable_type": "Issue", 
        "noteable_id": 361909, 
        "author": {
            "id": 449814, 
            "user_name": "gitlab_test_1", 
            "email": "gitlabtest_1@gitlab.com"
        }
    }
}

合并請(qǐng)求的push數(shù)據(jù)類(lèi)似于:

hook=
{
    "password": "feds3os4h2f8s4k", 
    "hook_name": "merge_request_hooks", 
    "push_data": {
        "id": 15339, 
        "project": {
            "project_id": 616834, 
            "project_name": "test_gitosc_20151106145021322"
        }, 
        "target_branch": "master", 
        "source_repo": {
            "project_id": 616836, 
            "project_name": "test_gitosc_20151106145021322"
        }, 
        "source_branch": "master", 
        "author": {
            "id": 449815, 
            "user_name": "gitlab_test_2", 
            "email": "gitlabtest_2@gitlab.com"
        }, 
        "title": "pull_request_test", 
        "body": "####################"
    }
}

以上就是5種鉤子觸發(fā)時(shí)推送的數(shù)據(jù)范例,為便于理解和使用,以上數(shù)據(jù)全部經(jīng)過(guò)json化。另,本wiki中范例數(shù)據(jù)僅供參考,請(qǐng)以實(shí)際收到的數(shù)據(jù)以及格式為準(zhǔn)。

Why-Blocked

為什么屏蔽 SSH 方式操作倉(cāng)庫(kù)?

答:大量有規(guī)律的重復(fù)性的 SSH 的方式操作倉(cāng)庫(kù)會(huì)被屏蔽掉,一般情況下是因?yàn)橛脩?hù)使用腳本進(jìn)行重復(fù)的更新代碼達(dá)到自動(dòng)部署的需要,這種情況應(yīng)該使用我們所提供的WebHooks鉤子進(jìn)行自動(dòng)觸發(fā)部署腳本。

如何解封?

答:請(qǐng)去除違規(guī)操作后,發(fā)送郵件至git@oschina.cn進(jìn)行申請(qǐng)解封,請(qǐng)?jiān)敿?xì)說(shuō)明被封的具體情況。

使用-Subversion-接入碼云

很高興的告訴大家,現(xiàn)在 碼云 目前支持使用 Subversion 對(duì)倉(cāng)庫(kù)進(jìn)行操作了。

使用前注意

  1. 倉(cāng)庫(kù)體積超過(guò) 300 MB 不建議使用 Subversion 操作倉(cāng)庫(kù),存儲(chǔ)庫(kù)容量達(dá)到 400 MB,或者 300 MB 并且存儲(chǔ)大量非文本數(shù)據(jù)時(shí),我們將關(guān)閉倉(cāng)庫(kù)的 Subversion 支持。
  2. 由于 GIT 不支持空目錄的提交,在存儲(chǔ)機(jī)器上,無(wú)論是普通倉(cāng)庫(kù)還是開(kāi)啟 Subversion 接入的倉(cāng)庫(kù)存儲(chǔ)時(shí)都是 GIT 倉(cāng)庫(kù),Subversion 的 commit 是提交到 git 倉(cāng)庫(kù)上的,所以碼云的 Subversion 不支持空目錄的提交。
  3. 第一次開(kāi)啟 Subversion, 操作一個(gè)倉(cāng)庫(kù),如果倉(cāng)庫(kù)體積較大或者提交次數(shù)較多,由于緩存的緣故,響應(yīng)時(shí)間會(huì)比較長(zhǎng)。
  4. 不支持 Subversion 的 Hook 機(jī)制,請(qǐng)使用 WebHook 替代。
  5. Subversion 屬性不完全支持。
  6. 客戶(hù)端需要開(kāi)啟 SASL 支持,不支持的客戶(hù)端無(wú)法訪問(wèn)。
  7. 部分 svn 命令不支持??梢圆榭?Subversion 客戶(hù)端的兼容性
  8. 版本號(hào)的映射,目前 Subversion 的版本號(hào)計(jì)算依據(jù)為本分支所有的commit 數(shù)目減一 不包括 merge ,如果使用了在 git 中強(qiáng)制回退等操作,請(qǐng)重新檢出。

WARNING:

由于 git 在設(shè)計(jì)上就沒(méi)有考慮空文件 Kernel.org: Git FAQ

我們?cè)O(shè)計(jì)的原則就是不破壞,不主動(dòng)修改用戶(hù)的倉(cāng)庫(kù),我們的后端存儲(chǔ)的完全是一個(gè) git 倉(cāng)庫(kù),如果我們添加了,一次提交內(nèi)容也不會(huì)一致了,建議你在添加目錄的時(shí)候添加 .keep 之類(lèi)的占位文件,空文件即可。

關(guān)于改版

Subversion 功能的最終解釋權(quán)歸 OSChina.NET 所有。Subversion 接入的規(guī)則可能在下一次改版中發(fā)生改變。

開(kāi)啟方式

在項(xiàng)目的設(shè)置界面開(kāi)啟

[圖片上傳失敗...(image-a0a115-1534921181413)]

如果是空倉(cāng)庫(kù):

emptyrepo

使用指南

碼云 支持的是 svn 協(xié)議。 對(duì)于 svn 而言,獲取一個(gè)倉(cāng)庫(kù)的代碼通常是 checkout,在項(xiàng)目主頁(yè)我們通??梢垣@得 URL:
[圖片上傳失敗...(image-a21485-1534921181413)]
這個(gè)倉(cāng)庫(kù)地址為:

svn://git.net/svnserver/newos

1.獲取倉(cāng)庫(kù)代碼:

svn checkout svn://git.net/svnserver/newos newos

使用上述命令,我們將得到項(xiàng)目默認(rèn)分支的代碼。并將本地的工作目錄命名為 newos
如果最后不帶 newos,svn 默認(rèn)把本地工作目錄命名為 SVN-URL 的最后一個(gè)目錄名,這里是 newos

svn checkout svn://git.net/svnserver/newos

如果要獲得任意分支代碼,請(qǐng)輸入近似如下的命令:

svn checkout svn://git.net/svnserver/newos/branches/update newosupdate

特別的說(shuō)明,獲取主干分支,也就是 master 分支可以使用下面的分支格式

svn checkout svn://git.net/svnserver/newos/trunk newos

svn trunk 分支對(duì)應(yīng) master 分支 用戶(hù)應(yīng)當(dāng)盡量不使用下面格式

svn checkout svn://git.net/svnserver/newos 

操作說(shuō)明

如果部分檢出倉(cāng)庫(kù),并且倉(cāng)庫(kù)根目錄下包含 branches/tags/trunk 這樣的目錄,請(qǐng)使用完整的路徑 layout,如下:

svn://git.net/example/example/trunk/tags/hello
svn://git.net/example/example/branches/dev/trunk
svn://git.net/example/example/branches/dev/branches 

如果沒(méi)有 master 分支,也就沒(méi)有 trunk 分支,檢出的 URL 不能省略分支名。比如只有一個(gè) dev 分支,必須使用下列格式,否則會(huì)提示倉(cāng)庫(kù)不存在。

svn co svn://git.net/svnserver/newos/branches/dev  svnserver_dev  

打開(kāi)終端,輸入上述命令,出現(xiàn)以下下面提示。其中第一個(gè)認(rèn)證領(lǐng)域是用戶(hù)的密碼,這個(gè)可以留空。而用戶(hù)名是用戶(hù)在 碼云 登陸時(shí)使用郵箱地址。密碼則是用戶(hù)登陸 碼云 所使用的密碼
一般而言,svn 會(huì)加密緩存用戶(hù)的用戶(hù)名密碼,所以,對(duì)倉(cāng)庫(kù)的操作只需要第一次輸入用戶(hù)郵箱和密碼。
清除密碼緩存,用戶(hù)目錄下的 .subversion/auth/svn.simple 文件夾下的文件。

[圖片上傳失敗...(image-941f89-1534921181413)]

下圖則是成功的拉取了項(xiàng)目代碼。

[圖片上傳失敗...(image-485dfd-1534921181413)]

查看本地工作目錄信息:

svn info

[圖片上傳失敗...(image-43e8c5-1534921181413)]

cd helloworld
echo "#SVN Options ReadMe.md">SVNReadMe.md
#svn add SVNReadMe.md
#svn add * --force類(lèi)似于git add -A
svn add * --force
svn update .
svn commit -m "first svn commit"

Subversion 在提交前建議先使用 svn update 更新工作拷貝。也就相當(dāng)于 git pull 后再 git push。
Subversion 的提交是在線的,如果機(jī)器已經(jīng)離線,那么提交會(huì)失敗,這個(gè)過(guò)程用git的方式理解就是 git commit+git push。
用戶(hù)使用 svn 提交代碼同樣會(huì)有動(dòng)態(tài)顯示。

列出版本庫(kù)中的目錄內(nèi)容:

svn list svn://git.net/svnserver/newos/trunk

導(dǎo)出倉(cāng)庫(kù)指定分支的所有文件,不含版本控制信息:

svn export svn://git.net/svnserver/newos/trunk newos

備注

安裝 Subversion 客戶(hù)端

在 Apache 基金會(huì)的 Subversion 官網(wǎng):
http://subversion.apache.org
二進(jìn)制下載提示頁(yè)面:
http://subversion.apache.org/packages.html

Windows 系統(tǒng):

與資源管理起集成的 SVN 客戶(hù)端:TortoiseSVN,通常被叫做"海龜",為 msi 安裝包??梢允褂?ExtractMSI 解壓縮。
很詭異的是,在 Apache 上并沒(méi)有推薦 TortoiseSVN。
另外還有 SlikSVN,下載地址:https://sliksvn.com/download/
其他的也就不一一介紹了。

Linux 系統(tǒng)

一般而言 Linux 系統(tǒng)自帶的包控制軟件能夠安裝 Subversion,如果版本低于1.8,就建議用戶(hù)下載預(yù)編譯的二進(jìn)制或者自己動(dòng)手編譯 Subversion。這里不做過(guò)多說(shuō)明。

OS X

XCode 自帶的 Subversion 版本為1.7.x,太老,而 碼云 只支持1.8以上的 SVN 客戶(hù)端。
如果安裝了 Homebrew

brew install subversion

或者使用WANdisco的預(yù)編譯版本
http://www.wandisco.com/subversion/download#osx

Subversion 客戶(hù)端的兼容性

我們支持 Apache Subversion 1.8 或者更高的版本,當(dāng)你安裝一個(gè) Subversion 客戶(hù)端時(shí),如果錯(cuò)誤提示是“無(wú)法協(xié)商驗(yàn)證驗(yàn)證方式” 請(qǐng)確保你的客戶(hù)端支持 SASL 驗(yàn)證,比如在 Ubuntu 上,你可以安裝 libsasl2-dev 然后編譯 Subversion, 這樣的話客戶(hù)端是支持 SASL 驗(yàn)證的。

sudo apt-get install libsasl2-dev

當(dāng)你使用 svnkit 或者 SubversionJavaHl 這類(lèi) IDE 集成客戶(hù)端,請(qǐng)確保支持 SASL 驗(yàn)證。

關(guān)于 GIT 與 SVN 的轉(zhuǎn)換

如果用戶(hù)存在一個(gè)基于 Subversion 托管的項(xiàng)目,要遷移到 碼云,可以使用 git-svn 將項(xiàng)目轉(zhuǎn)變?yōu)榛?git 的倉(cāng)庫(kù),然后推送到 碼云,這樣你依然能夠使用SVN對(duì)項(xiàng)目進(jìn)行操作。請(qǐng)記得先在 碼云 上新建一個(gè)項(xiàng)目

 git svn clone http://myhost/repo -T trunk -b branches -t tags 
 git remote add oscgit https://gitee.com/user/repo
 git push -u oscgit --all

通常來(lái)說(shuō),如果本地存在 SVN 倉(cāng)庫(kù),則可以:

git svn clone file:///tmp/svn-repo -T trunk -b branches -t tags 
git remote add oscgit https://gitee.com/user/repo
git push -u oscgit  --all

將項(xiàng)目轉(zhuǎn)移到 碼云 上以后,使用 svn 命令 checkout 即可對(duì)項(xiàng)目進(jìn)行操作。

高級(jí)指南:
http://git-scm.com/book/zh/ch8-2.html

安裝 git,git-svn

Windows

msysgit 官網(wǎng) http://msysgit.github.io/,版本比較低。
Github for Windows 提供的 git 工具和 msysgit 一致。
MSYS2 git 下載地址: http://sourceforge.net/projects/msys2,然后啟動(dòng)終端,安裝 git,目前版本為2.4.3。

pacman -S git

Cygwin git 下載地址: http://www.cygwin.com/,然后使用包管理軟件或者直接下載 git 源碼編譯 git。

make configure
./configure --prefix=/usr/local
make 
make install 

Linux

有包管理器的直接用包管理器安裝。
如 Ubuntu

sudo apt-get install git git-svn

也可以手動(dòng)編譯。

Mac OSX

下載地址:http://git-scm.com/download/mac

幫助

工作流程


安裝設(shè)置 git

下載最新版本的git

http://git-scm.com/downloads

當(dāng)你安裝完成git的時(shí)候,你需要簡(jiǎn)單的配置一下,打開(kāi)終端:

用戶(hù)名

第一步,你需要告訴git你的名字,這個(gè)名字會(huì)出現(xiàn)在你的提交記錄中。

git config --global user.name "你的名字"

Email

然后是你的Email,同樣,這個(gè)Email也會(huì)出現(xiàn)在你的提交記錄中,請(qǐng)盡量保持此Email和您的碼云的注冊(cè)Email一致。

git config --global user.email "你的Email"

Clone 和 Push

Clone 項(xiàng)目

git clone http://gitee.com/xxxxxx/xxxxxx.git

創(chuàng)建特性分支

git checkout -b $feature_name

寫(xiě)代碼,提交變更

git commit -am "My feature is ready"

將你的提交推送到 碼云

git push origin $feature_name

在提交頁(yè)面你可以查看你的變更,例如:

http://gitee.com/oschina/git-osc/commit/f3dd1c5bae48fa4244e2595a39e750e5606dd9be

創(chuàng)建一個(gè) pull request

你可以fork任意的公開(kāi)項(xiàng)目,當(dāng)你修改了你fork的項(xiàng)目,你可以向源項(xiàng)目提交pull request。項(xiàng)目的作者在審閱過(guò)代碼后可以決定是否將此變更應(yīng)用到源項(xiàng)目。

在碼云上使用SVN

使用教程已經(jīng)整理在這里


<a name="ssh_keys"></a>
SSH Keys
========


SSH key 可以讓你在你的電腦和 Git @ OSC 之間建立安全的加密連接。

你可以按如下命令來(lái)生成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://gitee.com/keys

cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....

添加后,在終端(Terminal)中輸入

ssh -T git@gitee.com

若返回

Welcome to 碼云, yourname! 

則證明添加成功。


關(guān)于權(quán)限


訪客

對(duì)于公有項(xiàng)目:

  • 創(chuàng)建issue
  • 評(píng)論
  • Clone 和 Pull 項(xiàng)目
  • 打包下載代碼
  • Fork 項(xiàng)目
  • 創(chuàng)建 pull request

報(bào)告者

  • 繼承訪客的權(quán)限
  • 私有項(xiàng)目:不能查看代碼
  • 私有項(xiàng)目:不能下載代碼
  • 私有項(xiàng)目:不能fork代碼

觀察者

  • 繼承報(bào)告者權(quán)限
  • 創(chuàng)建wiki
  • 打包下載代碼
  • 不能push代碼
  • 私有項(xiàng)目:可以fork

開(kāi)發(fā)者

  • 創(chuàng)建 issue
  • 評(píng)論
  • Clone 和 Pull 項(xiàng)目
  • 打包下載代碼
  • 創(chuàng)建 pull request
  • 創(chuàng)建分支
  • 推送分支
  • 刪除分支
  • 創(chuàng)建標(biāo)簽(里程碑)
  • 創(chuàng)建 wiki

管理員

  • 創(chuàng)建 issue
  • 評(píng)論
  • Clone 和 Pull 項(xiàng)目
  • 打包下載代碼
  • 創(chuàng)建 pull request
  • 創(chuàng)建分支
  • 推送分支
  • 刪除分支
  • 創(chuàng)建標(biāo)簽(里程碑)
  • 創(chuàng)建 wiki
  • 添加項(xiàng)目成員
  • 強(qiáng)制推送分支
  • 編輯項(xiàng)目屬性

項(xiàng)目組管理員

  • 編輯項(xiàng)目組屬性
  • 增加成員
  • 添加/刪除項(xiàng)目
  • 設(shè)置項(xiàng)目組管理員
  • 刪除項(xiàng)目組
  • 更改成員項(xiàng)目權(quán)限

Git @ OSC Flavored Markdown


Git @ OSC 的markdown基于原markdown做了一下擴(kuò)展,具體使用如下。

You can use GFM in:

  • 提交消息
  • 評(píng)論
  • issues
  • pull requests
  • 里程碑
  • wiki 頁(yè)面

跟傳統(tǒng)的Markdown的區(qū)別

URL 自動(dòng)鏈接

插入的URL不需要做特殊處理,會(huì)自動(dòng)變成鏈接。

Emoji表情

支持Emoji表情,參考:Emoji cheat sheet

插入代碼片段

可以向如下這種方式插入代碼片段,可以在標(biāo)記后面指定編程語(yǔ)言,如果沒(méi)有指定語(yǔ)言,編譯器會(huì)嘗試自動(dòng)識(shí)別。

```ruby
require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html
```

將會(huì)變成

require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html

特殊的 碼云 引用。

GFM 可以識(shí)別一些特殊的標(biāo)記,并且支持自動(dòng)補(bǔ)全,例如:

  • 123 (Issue)

  • !123 (Pull Request)
  • commit:1234567 (提交)
  • :icon: (emoji 表情)

如何導(dǎo)入外部的Git倉(cāng)庫(kù)?

因?yàn)橐恍┰驎簺](méi)有開(kāi)放一鍵導(dǎo)入功能。
有需求的可以先按照如下步驟導(dǎo)入其它地方的git倉(cāng)庫(kù)(以 github 上的 impress.js 為例):

1. 從原始地址 clone 一份 bare 倉(cāng)庫(kù):

git clone --bare  https://github.com/bartaz/impress.js.git

2. 在 碼云 上 創(chuàng)建一個(gè)項(xiàng)目

3. 以 mirror 的方式把剛才 clone 的項(xiàng)目 push 到 碼云 上:
(如果提示輸入 git 用戶(hù)密碼,請(qǐng)到 http://gitee.com/keys 添加 SSH Key)

cd impress.js.git
git push --mirror git@gitee.com:username/impress-js.git

這種方式的好處是:可以完整地保留原項(xiàng)目的所有 branch 和 tag 信息。
提示:首次push內(nèi)容量較大,推薦采用ssh方式push,傳輸更快,更穩(wěn)定,如果項(xiàng)目較小,也可以采用http方式push。

更多導(dǎo)入辦法,請(qǐng)點(diǎn)擊這里

項(xiàng)目組的使用

項(xiàng)目組可以使用戶(hù)更加方便的添加用戶(hù)到項(xiàng)目中

1. 創(chuàng)建項(xiàng)目組:http://gitee.com/teams/new

2. 添加用戶(hù):可以設(shè)置兩種權(quán)限,一種是用戶(hù)默認(rèn)在項(xiàng)目中的權(quán)限,一種是項(xiàng)目組管理權(quán)限

3. 指派到項(xiàng)目:如果選擇開(kāi)發(fā)者,那么將會(huì)按照用戶(hù)在項(xiàng)目組中的默認(rèn)權(quán)限為項(xiàng)目添加;如果選擇管理員,那么項(xiàng)目組中的所有成員將會(huì)成為項(xiàng)目的管理員

4. 撤銷(xiāo)項(xiàng)目:撤銷(xiāo)項(xiàng)目將會(huì)把在項(xiàng)目屬于項(xiàng)目組中的成員移除,如果成員同樣存在于此項(xiàng)目別的項(xiàng)目組中,那么將會(huì)更新為別的項(xiàng)目組中的相應(yīng)的項(xiàng)目權(quán)限。

Tips

  • 項(xiàng)目組只有項(xiàng)目組的成員可以訪問(wèn)

  • 項(xiàng)目組的名稱(chēng)是全站唯一的

  • 一個(gè)用戶(hù)存在于兩個(gè)項(xiàng)目組a,b中,在a中的項(xiàng)目權(quán)限是管理員,在b中的項(xiàng)目權(quán)限是開(kāi)發(fā)者,如果項(xiàng)目組a,b同時(shí)指派到項(xiàng)目pro,那么將項(xiàng)目組a從pro中移除之后,此用戶(hù)在pro中的權(quán)限將會(huì)從管理員降為開(kāi)發(fā)者。

README 規(guī)則

1. 碼云 README 文件支持多種文件格式以及命名規(guī)則。

例如: README, README.md, README.org...

或者: README_zh.md, README_en.md...

2. 若有多個(gè)README文件,則優(yōu)先顯示文件名包含'_zh','_cn'等中文標(biāo)注的README文件。

例如同一目錄包含兩個(gè)README文件:README_en.md README_zh.md

則顯示README為: README_zh.md

改寫(xiě)歷史,去除大文件

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

詳細(xì)參見(jiàn):這里

繼續(xù)閱讀

你可以點(diǎn)擊這里閱讀權(quán)威的git書(shū)籍ProGit

以下為收集的開(kāi)源中國(guó)社區(qū)熱心網(wǎng)友制作的碼云跟各種IDE,軟件的集成辦法,可以點(diǎn)擊查看:

衷心感謝網(wǎng)友 @nekocode @鉑金便便 @愷哥 [@彼岸花開(kāi)花落時(shí)] (http://my.oschina.net/bianhuakaihualuoshi) @whaon @小小程序員 @老左 @司馬奔 @楓葉飄零 @大漠真人細(xì)心整理分享資料。

項(xiàng)目導(dǎo)入幫助

說(shuō)明

如果你是一名github的用戶(hù),然后想使用咱們碼云的服務(wù),那么使用項(xiàng)目導(dǎo)入功能,是一個(gè)非常快速的轉(zhuǎn)入碼云的方式。

項(xiàng)目名要求

只允許字母、數(shù)字或者下劃線(_)、中劃線(-)、英文句號(hào)(.),必須以字母或數(shù)字開(kāi)頭。
不符合項(xiàng)目名要求會(huì)導(dǎo)致無(wú)法導(dǎo)入。

如何使用

點(diǎn)擊頁(yè)面header “+” 的按鈕,找到 “Github 導(dǎo)入”


輸入圖片說(shuō)明

這會(huì)跳轉(zhuǎn)到Github的登錄、授權(quán)頁(yè)面,需要您的授權(quán):

undefined

當(dāng)然,如果您已經(jīng)登錄或授權(quán)過(guò)了,那么就會(huì)直接進(jìn)入倉(cāng)庫(kù)列表頁(yè)面:

輸入圖片說(shuō)明

然后點(diǎn)擊你需要“導(dǎo)入”的倉(cāng)庫(kù),然后耐心等待幾秒鐘,項(xiàng)目導(dǎo)入完成!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容