Git 02: git管理碼雲程式碼倉庫 + IDEA集成使用git

Git項目搭建

創建工作目錄與常用指令

工作目錄(WorkSpace)一般就是你希望Git幫助你管理的文件夾,可以是你項目的目錄,也可以是一個空目錄,建議不要有中文。

日常使用只要記住下圖6個命令:

image

本地倉庫搭建

創建本地倉庫的方法有兩種:一種是創建全新的倉庫,另一種是克隆遠程倉庫。

創建全新的倉庫,需要用GIT管理的項目的根目錄執行

# 在當前目錄新建一個Git程式碼庫
$ git init

執行後可以看到,僅僅在項目目錄多出了一個.git目錄,關於版本等的所有資訊都在這個目錄裡面

克隆遠程倉庫

另一種方式是克隆遠程目錄,是將遠程伺服器上的倉庫完全鏡像一份至本地

# 克隆一個項目和它的整個程式碼歷史(版本資訊)
$ git clone [url]  # //gitee.com/xun-study/xun-share.git

Git文件操作

文件的四種狀態

版本控制就是對文件的版本控制,要對文件進行修改、提交等操作,首先要知道文件當前在什麼狀態,不然可能會提交了現在還不想提交的文件,或者要提交的文件沒提交上。

  • Untracked: 未跟蹤, 此文件在文件夾中, 但並沒有加入到git庫, 不參與版本控制. 通過git add 狀態變為Staged.
  • Unmodify: 文件已經入庫, 未修改, 即版本庫中的文件快照內容與文件夾中完全一致. 這種類型的文件有兩種去處, 如果它被修改, 而變為Modified. 如果使用git rm移出版本庫, 則成為Untracked文件
  • Modified: 文件已修改, 僅僅是修改, 並沒有進行其他的操作. 這個文件也有兩個去處, 通過git add可進入暫存staged狀態, 使用git checkout 則丟棄修改過, 返回到unmodify狀態, 這個git checkout即從庫中取出文件, 覆蓋當前修改 !
  • Staged: 暫存狀態. 執行git commit則將修改同步到庫中, 這時庫中的文件和本地文件又變為一致, 文件為Unmodify狀態. 執行git reset HEAD filename取消暫存, 文件狀態為Modified

查看文件狀態

上面說文件有4種狀態,通過如下命令可以查看到文件的狀態

#查看指定文件狀態
git status [filename]

#查看所有文件狀態
git status

# git add .                  添加所有文件到暫存區
# git commit -m "消息內容"    提交暫存區中的內容到本地倉庫 -m 提交資訊

忽略文件

有些時候我們不想把某些文件納入版本控制中,比如資料庫文件,臨時文件,設計文件等

在主目錄下建立”.gitignore”文件,此文件有如下規則

  • 忽略文件中的空行或以井號(#)開始的行將會被忽略。
  • 可以使用Linux通配符。例如:星號(*)代表任意多個字元,問號(?)代表一個字元,方括弧([abc])代表可選字元範圍,大括弧({string1,string2,…})代表可選的字元串等。
  • 如果名稱的最前面有一個感嘆號(!),表示例外規則,將不被忽略。
  • 如果名稱的最前面是一個路徑分隔符(/),表示要忽略的文件在此目錄下,而子目錄中的文件不忽略。
  • 如果名稱的最後面是一個路徑分隔符(/),表示要忽略的是此目錄下該名稱的子目錄,而非文件(默認文件或目錄都忽略)。
#為注釋
*.txt        #忽略所有 .txt結尾的文件,這樣的話上傳就不會被選中!
!lib.txt     #但lib.txt除外
/temp        #僅忽略項目根目錄下的TODO文件,不包括其它目錄temp
build/       #忽略build/目錄下的所有文件
doc/*.txt    #會忽略 doc/notes.txt 但不包括 doc/server/arch.txt

使用碼雲

  • 註冊登錄碼雲,完善個人資訊

  • 設置本機綁定SSH公鑰,實現免密碼登錄!(免密碼登錄,這一步挺重要的,碼雲是遠程倉庫,我們是平時工作在本地倉庫!)

    # 進入 C:\Users\Administrator\.ssh 目錄
    # 生成公鑰
    ssh-keygen
    

    image

  • 將公鑰資訊public key 添加到碼雲賬戶中即可!

    image

  • 使用碼雲創建一個自己的倉庫

    image

  • 獲取url

    image

  • 克隆到本地

    image

IDEA中集成Git

  • 新建項目,綁定git:最便捷的方法是,創建一個新的空項目,把克隆來的項目中的所有內容拷貝到新創建的本地項目中

  • 克隆來的項目:xun-test,新建的項目:gitee-test

    image

  • 注意idea里的變化

    image

  • 使用IDEA操作git

    • 添加到暫存區:git add .
    • commit 提交:git commit -m “第一次提交”

    image

    • push到遠程倉庫:git push

    image

  • 登錄碼雲查看

    image

Git分支

如果同一個文件在合併分支時都被修改了則會引起衝突:解決的辦法是我們可以修改衝突文件後重新提交!選擇要保留他的程式碼還是你的程式碼!

master主分支應該非常穩定,用來發布新版本,一般情況下不允許在上面工作,工作一般情況下在新建的dev分支上工作,工作完後,比如上要發布,或者說dev分支程式碼穩定後可以合併到主分支master上來

  • git分支中常用指令
    # 列出所有本地分支
    git branch
    
    # 列出所有遠程分支
    git branch -r
    
    # 新建一個分支,但依然停留在當前分支
    git branch [branch-name]
    
    # 新建一個分支,並切換到該分支
    git checkout -b [branch]
    
    # 合併指定分支到當前分支
    $ git merge [branch]
    
    # 刪除分支
    $ git branch -d [branch-name]
    
    # 刪除遠程分支
    $ git push origin --delete [branch-name]
    $ git branch -dr [remote/branch]
    
Tags: