Git嬰幼兒使用手冊【十分鐘讓你帥氣的使用命令行和團隊工做】

 

Git由來:......node

Git使用的好處:......git

 

如何使用Git:(以上會顯得咱們如下的是很純純的乾貨)程序員

  

  代碼庫有兩個部分: 本地代碼庫;遠程代碼庫;github

 

  本地代碼庫使用方法:bash

 

    1、先建立一個文件,做爲你的本地代碼庫,裏面固然就是你項目的工程目錄;ide

      在終端裏打開該文件,輸入如下代碼 ([xxxx]  內表明你要自主寫入的名稱)gitlab

   # 在當前目錄新建一個Git代碼庫學習

   $ git init測試

   # 新建一個目錄,將其初始化爲Git代碼庫  網站

   $ git init [project-name]    

       

 

 

   2、簡單配置一下你的git,別緊張,入門等級徹底是簡單的配置;

      Git的設置文件爲.gitconfig,它能夠在用戶主目錄下(全局配置),也能夠在項目目錄下(項目配置)

  

  # 設置提交代碼時的用戶信息   $ git config [--global] user.name "[name]"   $ git config [--global] user.email "[email address]"
  # 編輯Git配置文件   $ git config -e [--global]
  # 顯示當前的Git配置   $ git config --list

 

 

   3、對暫存區的操做;

    配置就這麼完成了,接下來開始使用Git,使用前,咱們先粗糙的說一下暫存區的概念:

      一、暫存區的概念你能夠理解成網購的購物車,你敲出來的代碼就至關於你在瀏覽網站時所看到的貨物,你總不能看一眼瀏覽列表,貨物就到你家了吧。

      二、咱們先簡單介紹一個命令,這個命令至關於打開京東,查看貨物列表。(紅紅的就是你要買的產品)

 

 

  # 檢查狀態   $ git status 

 

     三、咱們再介紹一個命令,這個就牛X了,不只能夠看,這個命令能夠直接讓你加入購物車了,是否是很心動。

 

  # 加入到暫存區   $ git add 

    四、若是你很土豪,大手一揮,說這些我都要了,就是買買買,那好再來一個命令,所有加入購物車。

  # 所有加入暫存區   $ git add -A

    

  4、提交到本地倉庫;

    你買的貨物不能總在購物車是吧,咱們這回就要付款,買回家了,也就是提交到咱們本身的本地倉庫。(msg是用戶對此次提交的描述,你總要告訴你的小夥伴或是之後的本身,我這波操做都幹了啥)

  $ git commit -m ["msg"]  # 提交到本地倉庫

 

   OK,咱們以上就是對本地倉庫的操做,相信像我這樣的嬰幼兒選手也都學會了這波操做,固然你會問,我靠,這麼牛掰的git你就說完了,固然!固然不是,以上仍是爲了讓你們看到一個基本的流程,由於git的命令真的不少,別說十分鐘,不少個十分鐘咱們也不能一一學會,可是這個流程明白了以後,你們就能夠去一個一個的嘗試那些命令,博客最後,會附上一篇軟大神,哦不,阮大神的Git嬰幼兒的命令清單。

   好,接下來,就是咱們從本地倉庫,鏈接,以及操做遠程倉庫,而且如何與小夥伴共同開發的流程。

 

 

  遠程代碼庫相關使用方法:(可能我這個描述不是很準確,若是你不是很明白...那就不明白嗎....反正沒啥用)

    

  1、本地倉庫與遠程倉庫連接;

    你本地的代碼,要上傳到遠程倉庫了;

    一、若是不是代碼,咱們用什麼?百度雲盤啊,360雲盤啊,網易雲盤啊,這樣子不只能夠節省了你本地電腦的空間,還大大的方便了共同協做啊,好比你的老鐵說「同志,那個什麼小澤什麼瑪麗什麼亞的文學電影拷給我」 咱們就直接給出一個地址,說「去下載吧」,這樣是否是很方便,並且若是你的老鐵也有這樣的文學電影,也能夠添加到裏面,很方便咱們也下載下來學習是否是,此處有一個[你懂得]表情;

    二、那麼換成代碼呢 ? 咱們固然也有相似雲盤同樣的庫,好比github、gitlab、bitbucket之類的,你們網上搜一搜不少,可是這種倉庫也分公有和私有,你想一想啊,若是公有的是否是你的文藝電影就被別人看到了,因此咱們大多時候使用的都是私有庫,固然你覺想開源的一些代碼,就要放在公有庫裏面了。至於選哪家你們本身決定,有的公開,有的私有,還有收費和免費之分,選好了,建立一個倉庫就好。

    三、接下來講的一個命令,可讓咱們本身本地的倉庫和遠程倉庫連接起來。(遠程倉庫地址栗子:https://github.com/igeekbar/awesome-project.git

  # 鏈接遠程倉庫

  $ git remote add origin [你申請的遠程倉庫地址]

 

  2、向遠程倉庫上傳你的本地代碼;

    一、這個命令有兩個參數,遠程倉庫的名字,以及分支的名字。

    二、這裏要簡單說一下:

      (1)一個項目能夠同時擁有好幾個遠程倉庫,爲了區分一般會起不一樣的名字。一般主要的遠程倉庫被稱爲origin。

      (2)Git主分支的名字,默認叫作master。它是自動創建的,版本庫初始化之後,默認就是在主分支在進行開發。

    三、若是你沒有特殊的設定,那麼下面的命令就是 把本地的提交傳送到遠程倉庫。

    

    # 將本地代碼上傳合併到遠程倉庫

    $ git push origin master    

 

  3、拉取遠程倉庫上的代碼;

    一、當你的朋友張大壯將他的文學電影上傳到了遠程倉庫,若是你要下載下來學習,就要用到這個命令了。

    二、其實咱們這個第三步應該拿到上一步以前來講,一個正常的流程必定是這樣 先拉取,再推上去,不然一旦你沒有拉取代碼,就將本身的代碼上傳上去,可能會產生衝突,因此咱們在上傳代碼以前,必定要先拉取一下,將你小夥伴的代碼拉取到本地,可是咱們這次講解的是新建,此時你的遠程倉庫空空如也,因此咱們並不用拉取一下,能夠直接上傳。

    三、講一個坑:仍是建議先拉取一下,由於博主我剛學習Git的時候,就沒有拉取,按道理來講直接上傳也沒問題,但問題是博主我手欠的在遠程倉庫裏建立了一個md,這樣上傳的時候由於文件數量不相同,因此形成了上傳不上去,此時咱們就要先拉取一下代碼,將遠程代碼合併到本地,再由本地上傳纔會OK;(此時合併選擇使用強行合併)

 

    #從遠程倉庫拉取代碼到本地

    $ git pull origin master

    #強行拉取合併代碼到本地

    $ git pull origin master --allow-unrelated-histories

    

  4、克隆倉庫;

    一、能夠將你知道地址的倉庫內代碼,下載到你的本地。

    二、若是發生了上面 三 中的 3 所遇到的問題,能夠不選擇強行合併的方法,能夠先使用該命令克隆到本地,而後再將你的代碼拷貝到裏面,再提交上去,也是沒問題的。

 

    # 克隆代碼到本地倉庫

    $ git clone

 

  5、分支操做;

    一、學會了克隆代碼到本地,咱們就能夠開始幹活了,此時你和你的鐵柱小夥伴共用了一個遠程倉庫,可是大家若是對一個分支作修改,很容易衝突,也不利於開發和提交,因此測試咱們就要開始學習對分支的操做;

    二、這個操做其實很簡單,就像是拷貝遠程倉庫同樣,不知道大家看過火影沒,影分身術啊,立馬拉出來一個新的鳴人,差很少就是這個道理。

    三、每個倉庫的默認分支都叫master, 建立新分支能夠給他命名。

    # 建立一個新分支而且命名

    $ git branch [banch_name]

 

   四、咱們成功檢出了一個分支,接下來就是切換分支的操做,有的時候你並非只在一個分支上操做,有可能一個分支還要檢出一個分支。

    五、除了常設分支之外,還有一些臨時性分支,用於應對一些特定目的的版本開發。

  * 功能(feature)分支

  * 預發佈(release)分支

  * 修補bug(fixbug)分支

 

  # 查看當前本地分支

  $ git branch 

  # 切換到指定分支

  $ git checkout [branch_name]

    六、若是在分支上開發完成,就要合併到你本地的默認分支上,也就是第一個分支,master,以後再由master統一提交上去。(記得提交前要先拉一波)

  # 合併分支

  $ git merge [branch_name]

  # 刪除分支

  $ git branch -d [branch_name]

 

  OK,基本的團隊合做就到這裏了,是否是真的只用了十分鐘。固然這些只是簡單的流程,實際應用操做過程當中,你還會遇到不少問題,咱們以上也只是講解了git使用的冰山一角,好比解決衝突、查看提交不一樣,回滾等等,咱們可能會遇到。以上所講,只但願給剛剛入門的同窗一個簡明的入口,師傅領進門,修行在我的,程序員這條路仍是要本身一步步走下去,面對各類問題和新鮮技術都要不斷的去學習,博主也是剛剛入門的小菜菜,但願能夠和大家一塊兒砥礪前行;

 

  一些團隊合做過程當中可能會使用到的進階技能:

  

  1、對比兩個提交以前的差異;

     一、首先要分別知道你要對比的是誰和誰,究竟是小澤什麼瑪利什麼亞和蒼什麼井什麼空到底誰比較文藝呢?你就要先知道他們的名字。

   # 查看歷史信息和id

   $ git log 

    二、id很長,可是當使用它的時候你並不須要複製整個字符串,前幾個字符就夠了。

  # 查看某一次提交更新了什麼

  $ git show [id]

  # 查看兩次提交的不一樣

  $ git diff [id_1]..[id_2]

 

  2、回滾

    一、Git容許咱們將某個特定的文件回滾到特定的提交,須要指定回滾到哪一個提交(以id做爲參數),以及文件的全路徑。

  # 將文件回滾到指定提交

  $ git checkout [id] [file_name]

    二、回滾提交,若是狀況超級複雜,咱們熬夜看了什麼什麼老師的文藝片後,精神不佳,一不當心提交錯了,或是本次提交忘記加入某個文件,那麼咱們就須要使用命令來改正此次提交。

  # 更改上次的提交

  $ git commit --amend

    三、若是是更復雜的狀況,好比不是最新的提交出了問題,也不要着急,Git的回滾機制是很健全滴。

  # 修改提交 最新的一次提交別名也叫HEAD

  $ git revert HEAD

  # 其餘提交

  $ git revert [id]

 

  3、衝突

    一、回滾的時候是很容易出現衝突的,什麼是衝突呢,就是你的老鐵趙鐵柱很喜歡小澤什麼瑪利亞老師,而你喜歡蒼井什麼空老師,那麼問題來了,當大家都上傳了一個名字叫`我最愛喜歡的文藝片.mp4`的文件時,尷尬就出現了,衝突了,我最愛的只能有一個,此時Git就會報出大家的衝突。

    二、不要怕,出現衝突了很簡單,只須要你說服你的老鐵趙鐵柱不要再喜歡小澤什麼瑪利亞老師了,仍是投入蒼井什麼空老師的懷抱吧,或是他說服你,或是大家同時喜歡上了郭德綱,那麼這個衝突就解決了。

 

  4、配置 .gitignore

    一、這個就很好理解了,你提交代碼的時候,必定是有一些代碼不想提交到遠程倉庫的,好比build、node.js項目中的node_modules文件夾、.log等等,總之這些均可以再.gitignore作一個攔截,不讓他們在咱們git add -A時,被提交上去。

    二、只須要你在代碼工程根目錄下,建立.gitignore文件,在文件中列出不須要提交的文件名、文件夾名,每一個獨佔一行,.gitignore文件須要像普通文件同樣add、commit和push。

    三、舉個栗子:(「/」說明是一個文件夾,裏面的全部內容都被遞歸忽略

    *.log 
    build/ 
    node_modules/ 
    .idea/ 
    my_notes.txt

相關文章
相關標籤/搜索