Git簡單學習

fightcrap發表於2018-12-12

Git常用命令

什麼是Git

Git是一個版本控制軟體。在進行軟體開發時,一個團隊的人靠使用Git,就能輕鬆管理好專案版本,做好專案的追蹤和輔助進度控制。確切的講,Git是一款分散式版本控制系統。這個“分散式”,要和“集中式”放在一起理解。

Git常用指令列舉

  • git init 初始化git專案
  • git pull 拉取分支內容
  • git push 推送內容到分支
  • git commit 提交內容到本地分支
  • git merge 合併分支
  • git add 新增未進入git中的檔案
  • git checkout 切換分支
  • git fetch 獲取遠端分支的變更
  • git clone 下載遠端git
  • git config 獲取配置
  • git status 顯示有變更的檔案
  • git log 顯示當前分支變更的
  • git reset 撤銷回退版本

遠端倉庫-本地倉庫-暫存區-工作區三者關係圖

遠端倉庫-本地倉庫-暫存區-工作區三者關係圖

詳細指令介紹

  • 程式碼庫相關操作

    1. git init [project-name] 初始化一個git項  目,一般用於專案初始化操作
    2. git clone [url] 下載遠端git,把遠端專案下載到本地中
    複製程式碼
  • git 配置操作

    1. git config --list 顯示當前git配置
    2. git config -e [-- globa] 編輯[當前/全域性]配置檔案
    3. git config [--global] user.name "[name]" 設定提交程式碼時的使用者資訊,對應git上傳的賬號資訊,同理郵件資訊也可以這樣編輯
    複製程式碼
    git的配置檔案優先順序:
    專案倉庫配置的優先順序高於系統預設配置檔案
    專案倉庫配置的配置會覆蓋系統預設配置檔案的配置
    複製程式碼
  • 增加/刪除暫存區中檔案

    1. git add [file1 ...]  新增指定檔案到暫存區中
    2. git add [dir]  新增資料夾到暫存區
    3. git add . 將當前目錄下所有檔案放到暫存區中
    4. git rm [file1 ...] 刪除工作區檔案,
    複製程式碼
  • 程式碼提交/拉取

    1. git commit -m [message] 提交暫存區到倉庫區
    2. git commit [file1 ...] -m [message] 指定檔案提交暫存區到倉庫區
    3. git pull [remote] [branch] 拉取遠端倉庫的變化,併合並本地分支
    4. git push [remote] [branch] 上傳本地指定分支到遠端倉庫
    5. git push [remote] --all 推送所有分支到遠端倉庫
    6. git push [remote] --force 強制忽視衝突,上傳到遠端分支(不推薦,除非特殊情況)
    複製程式碼
  • 狀態/資訊檢視

    1. git status 顯示變更的檔案
    2. git log 檢視當前分支的歷史版本資訊
    複製程式碼
  • 分支操作

    1. git fetch [remote]  獲取遠端倉庫的變更
    2. git checkout [branch] 切換分支
    3. git checkout [commit] [file] 恢復某個commit的指定檔案到暫存區
    4. git reset --hard 回退分支到上一個commit記錄
    5. git stash 未提交的變化暫存移除,
    6. git stash pop 暫存未提交的變化移入
    複製程式碼

綜上:常見的指令列舉了部分,雖然不是完整的,如果需要檢視可以用git --help檢視完整的資訊。

Git使用問題以及解決方法

問題1:如果提交本地專案到Github/其他遠端倉庫?

首先進入GitHub,建立一個遠端倉庫 如果已有忽略下步

建立遠端倉庫

然後獲取對應的url

獲取url

進入本地專案目錄,並初始化

初始化
關聯遠端倉庫

g關聯遠端倉庫
拉取遠端程式碼
pull程式碼
上傳程式碼
push程式碼

ps:在pull哪一步有時候會出現一個錯誤:refusing to merge unrelated histories git pull 這個錯誤只要在git pull命令加一個 --allow-unrelated-histories 就可以了完整的命令:git pull --allow-unrelated-historiesjia