Git 部分學習文檔

.git目錄下文件的介紹

  • hooks (鉤子函數的一個庫 類似於回調函數)
    • info (包含一個全局性的排除文件)
    • objects (目錄存儲所有數據內容)
    • refs (目錄存儲指向數據(分支)的提交對象的指針)
    • config (文件包含項目特有的配置選項)
    • description (顯示對倉庫的描述信息)
    • HEAD (文件目前被檢出的分支)
    • logs (日誌信息)
    • index (文件保存暫存區的信息)

基礎Linux命令

  • clear 清除屏幕
    • echo 'hello word '>test.tet 命令臺書寫內容
    • ll 將當前目錄下的子目錄展現出來
    • find ./ 將當前目錄下的子目錄以及文件也展現出來
    • find ./ -type f 只講文件展現出來
    • rm text.txt 刪除文件
    • MV a.txt b.txt 更名字
    • cat a.txt 查看文件內容
    • vim a.txt 編輯內容 i 插入 ese : wq 保存退出 :set nu 設置行號 q! 強制退出不保存

初始化git

  • git init (初始化倉庫 生成.git文件)
    • git config --global user.name “ychunx”
    • git config --global user.email @ .com
    • git config --list

高級命令(crud)

  • git init 初始化

    • git add ./ 添加暫存區

    • git commit -m “註釋” 提交項目

    • git status 查看當前狀態

    • git diff 查看當先做的哪些更新沒有暫存

    • git diff -cached 查看哪些已經更新好了準備下次提交

    • git commit -a -m git自動將已經跟蹤過的文件暫存起來一併提交

    • rm yd.txt 刪除文件 暫存區裏沒有文集 版本庫多了一個提交對象不過沒有內容

    刪除文件屬於修改操作 跟上面的提交步驟一樣

  • mv z.txt zx.txt 重新起名字跟已修改一樣的操作

    • git add ./

    • git commit -m “rename zx”

    • git log --oneline 查看提交歷史記錄

    • git reflog 查看命令歷史記錄

    • git checkout – filename 撤銷工作區修改,注意 – ,區分分支管理

    • git reset HEAD filename 撤銷暫存區版本,放回工作區

    • git reset --hard HEAD^ 在版本庫回退至第幾個版本(有幾個^)可以HEAD~num指定

    • 也可以git reset --hard id ,利用git reflog 或 git log 查找文件id

    • git commit --amend 提交區註釋寫錯了修改註釋

    • git rm 刪除文件後 git commit ,可以用 git checkout 恢復

    • git push origin master 把本地master分支的最新修改推送至GitHub

    • git clone https://github.com/name/ .git 或者 [email protected]:name/ .git


分支

  • 每一個功能都可以開一個分支,不影響主線的分支

    分支就是一個活動的指針就在提交對象的前面指向最新提交

    切換分支的時候一定要提交完的時候再切否則會出現問題
    每次切換分支前當前分支一定要是已提交狀態 否則會污染主分支 如果第一次提交了再修改的時候沒有提交他就不讓切換分支了

    • master默認是主分支
    • git branch 查看當前分支,列出所有分支,* 指向當前分支
    • git branch test 會在當前的提交對象上創建一個分支
    • git checkout test 將分支轉到test上面來
    • git checkout -b test 創建分支並且切換過去
    • git branch -d test 刪除分支 不能自己刪自己
    • git merge test 將test合併到當前分支上
      • 如果在沒有合併的情況下修改,可能會衝突
      • 衝突後 git status 查看衝突文件
      • Git用<<<<<<<=======>>>>>>>標記出不同分支的內容,我們修改如下後保存
      • 刪除多餘分支
    • switch
      • git switch -c test 創建並切換到新的分支test
      • git switch master 直接切換已有分支
    • git branch -v 查看分支的最後一個提交
    • git log --graph 查看分支合併圖
    • git merge --no-ff -m “merge with no-ff” dev --no-ff參數,表示禁用Fast forward
      • 因爲本次合併要創建一個新的commit,所以加上-m參數,把commit描述寫進去
      • 合併分支時,加上--no-ff參數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward合併就看不出來曾經做過合併
    • git log --graph --pretty=oneline --abbrev-commit用git log看看分支歷史

    bug 分支

    • git stash 把當前工作現場“儲藏”起來,等以後恢復現場後繼續工作

      • 儲藏起來的用 git stash list 查看

      • 恢復:

        • 一是用git stash apply /stash@{0}/恢復,但是恢復後,stash內容並不刪除,你需要用git stash drop來刪除

        • 另一種方式是用git stash pop,恢復的同時把stash內容也刪了

      • 在一個分支上修復了bug後,這個bug其實在其他分支上也存在

        • Git專門提供了一個git cherry-pick命令,讓我們能複製一個特定的提交到當前分支,避免重複勞動
        • 我們只需要把4c805e2 fix bug 101這個提交所做的修改“複製”到命令後
        • git cherry-pick 4c805e2
    • 強行刪除沒有合併的分支d需要大寫 git branch -D name

  • 查看遠程庫的信息,用git remote 或者,用 git remote -v顯示更詳細的信息

    • git push origin name 推送本地分支到 github

多人協作

因此,多人協作的工作模式通常是這樣:

  1. 首先,可以試圖用git push origin推送自己的修改;
  2. 如果推送失敗,則因爲遠程分支比你的本地更新,需要先用git pull試圖合併;
  3. 如果合併有衝突,則解決衝突,並在本地提交;
  4. 沒有衝突或者解決掉衝突後,再用git push origin推送就能成功!

如果git pull提示no tracking information,則說明本地分支和遠程分支的鏈接關係沒有創建,用命令git branch --set-upstream-to origin/

這就是多人協作的工作模式,一旦熟悉了,就非常簡單。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章