自我總結的git的使用

git是什麼

git是一個分佈式版本控制工具,github是代碼託管平臺。

git有什麼用

  • 保存文件的所有修改記錄

  • 使用版本號進行區分

  • 隨時可瀏覽歷史版本記錄

  • 可還原到歷史指定版本

  • 對比不同版本的文件差異

爲什麼要用git?

  • 多人協作開發一個大型項目

  • 每個人都在代碼庫下載代碼,然後進行修改,把大家不同版本的代碼合併上傳到平臺

  • 公司都會有自己的代碼託管平臺,github是開源的,免費學習,參與知名項目

  • 爲協作開發而生的,公司都在使用,不得不學

要學什麼?怎麼用

基本概念

倉庫

倉庫分爲遠端倉庫和本地倉庫

遠端倉庫

  • git init --bare

本地倉庫

  • git clone ...

協議

  • http

  • ssh

使用ssh公鑰登錄GIT服務器

生成公鑰和私鑰(ssh-keygen -t rsa)

安裝openssh server(可省略)

複製公鑰內容到遠端服務器 .ssh/authorize_keys

git clone

  • git

設置用戶名和密碼

局部

使用git config user.name mark設置用戶名

設置郵箱使用 git config user.email [email protected]

git config --local -l

全局

使用 git config --global user.name mark設置用戶名

使用git config --global user.email [email protected]設置郵箱

git config -l

本地工作區

就是我們使用git init或 git clone 所在的路徑

暫存區

使用 git add <源碼文件>添加到暫存區

本地倉庫

使用git commit . 添加到本地倉庫

遠程倉庫

使用git push orgin master推送到遠端服務器

版本號

通過 git log查看我們的提交記錄·裏面有我們的版本號

當前檢出記錄的符號引用

基本操作

  • 暫存(git add)

  • 提交(git commit)

  • 推送(git push)

  • 拉取(git fetch)

  • 拉取合併(git pull)

git fetch

git merge

  • 查看狀態(git status)

  • 查看歷史(git log)

git reflog

逆向操作

  • index -> workspace git (git restore -S 源碼文件)

  • 本地倉庫 -> index (git reset --soft)

  • 本地倉庫 -> workspace(git reset --mixed)

  • 本地倉庫 ->null(git reset --hard)

  • workspace ->null(git checout、git checkout --file、git checkout -f)

本地倉庫整理操作

  • 整理上一次提交(git commit --amend)

  • 整理多次提交(git rebase -i h1 h2、左開右閉)

  • 沒有人基於你的分支開發(從變基那個節點開始往後的所有節點的commit id都會變化、會引起其他人衝突)

分支操作

  • 查看分支(git branch)
  • 創建分支(git branch develop 創建、git chect out -b develop 創建並切換)
  • 合併分支(git rebase(不建議使用))
    • 從兩個分支的共同祖先開始提取當前分支上的修改
    • 提取的提交應用到目標分支的最新提交的後面
    • 將當前分支只想目標分支的最新提交
    • 可能引發其他人基底發生改變
  • 刪除分支
    • git branch -d develop
    • 刪除遠端 git push origin -d develop

*分支作用:獨立變化互不依賴

解決衝突

  • 衝突產生原因 不同分支修改了同一文件
  • 解決原則
    • 不要影響其他人提交的功能
    • 協商解決
  • 解決
    • git merge
      • git add .
      • git commit . -i -m ".."
    • git rebase
      • git add . 標記解決
      • git rebase --continue
  • 建議
    提交前先pull代碼

推薦一個零聲學院免費教程,個人覺得老師講得不錯,
分享給大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒體,CDN,P2P,K8S,Docker,
TCP/IP,協程,DPDK等技術內容,點擊立即學習:
服務器
音視頻
dpdk
Linux內核

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