代碼版本管理:Git日常使用指令

關於Git的幾個概念

  • 版本庫(倉庫):儲存代碼文件等的地方
  • 本地倉庫:本機倉庫
  • 遠程倉庫:充當‘中央服務器’,用於不同節點之間進行代碼交換的地方
  • 克隆:複製
  • 分支branch:不同分支做不一樣的事情,用於協同開發
  • 標籤:用於標註版本信息的‘指針’指向某一個commit位置

常用指令

1、新建空目錄(用來創建倉庫)

mkdir kkgit         # 創建目錄
cd kkgit            # 打開空目錄

2、初始化倉庫,將目錄轉爲倉庫

git init            # 初始化
ls -ah              # 查看倉庫...
ls -al
ls
# 創建空倉庫後進行賬戶配置
git config --global user.email '[email protected]'
git config --global user.name 'klausLyu'

3、刪除倉庫:刪除文件夾下隱藏的 .git 文件夾即可,刪除該文件家後,倉庫轉爲目錄,目錄中的文件仍舊會保留。若回覆目錄爲倉庫,執行 git initgit add .git.commit -m '...'等指令

ls .git             # 1) 轉到目錄下的 .git 文件
rm -rf .git         # 2) 刪除 .git 文件,前面不加 git, ' rm -rf .git '

4、倉庫中創建文件(終端創建 或者 直接倉庫中創建好文件)

# 通過命令創建文件
touch test.txt          # 創建txt文件, touch指令
vi test.txt             # 終端中直接打開test.txt文件,瀏覽模式
i                       # 瀏覽模式 --> 插入模式 i 或 o 或 a (注意三者的區別),輸入內容即可
ESC                     # 插入模式 --> 瀏覽模式
:wq                     # 瀏覽模式下輸入 :wq 保存並退出文本編輯 (shift+:/; --> :)
cat test.txt            # 查看文件

4、添加文件到 git 倉庫和刪除文件(添加但並未入庫,只是存儲在暫存區,等待入庫)

git add test.txt        # 添加文件, 沒有任何提示表示沒問題
# 添加多個文件: git add abc.txt def.txt  ---文件名之間用空格 
# 批量添加所有文件:git add .
# 修改文件名:abc.txt --> abcd.txt
    # code: git add abcd.txt
            git rm abc.txt
            git commit -m 'rename for abc.txt to abcd.txt'

# 刪除文件: git rm test.txt

5、使用git將文件提交到倉庫

git commit -m 'add a file of test.txt'

6、查看當前倉庫的狀態(是否有改動未add/rm和提交,未處理的)

git status                          # 若有未處理的,重複4和5的步驟,將所有改動處理並提交

7、查看修改的文件內容和日誌log文件

git diff test.txt                   # 查看修改的文件內容
git log                             # 查看日誌文件,獲取提交記錄

8、版本回退

git reset --hard HEAD^              # 回退到上一個版本
git reset --hard 版本號                # 版本號可通過git tag...指令進行指定

9、使用SSH進行上傳提交更新時需要公鑰(ssh協議

  • 生成獲取pubkey: ssh-keygen -t rsa -b 4096 -C 'youremail'
  • 生成的pubkey默認位置:lixux:/home/tarena/.ssh目錄下; windows:c:/Users/'accountname'/.ssh目錄下
  • 添加pubkey: 打開id_rsa.pub cat id_rsa.pub 複製內容 在github中setting中SSH and GPG keys中添加SSH keys
    添加內容爲複製的內容
    (報錯,sign_and_send_pubkey:… 解決方法 運行 ssh-add)

10、git同步操作–建立遠程倉庫與本地倉庫連接(先有本地倉庫,後有遠程倉庫)

# 先有本地倉庫,後有遠程倉庫
# 獲取遠程倉庫,與本地倉庫之間建立鏈接關係
# '遠程倉庫名'系統默認的是 origin, 也可以自定義, 建議使用默認的origin, 不會忘
git remote add '遠程倉庫名' '遠程倉庫地址(https協議 / ssh協議)'  

# https協議
git remote add origin https://github.com/KlausLyu/gitdemo.git
# ssh協議
git remote add origin git@github.com:KlausLyu/testdimokk.git

# 查看遠程倉庫
git remote -v

# 自定義:
git remote add klausgit https://github.com/KlausLyu/klausgit.git
tarena@tedu:~/klausgit$ git remote -v
klausgit  https://github.com/KlausLyu/klausgit.git (fetch)
klausgit  https://github.com/KlausLyu/klausgit.git (push)

# 默認:
git remote add origin https://github.com/KlausLyu/gitdemo.git
tarena@tedu:~/klausgit$ cd ../gitdemo
tarena@tedu:~/gitdemo$ git remote -v
origin  https://github.com/KlausLyu/gitdemo.git (fetch)
origin  https://github.com/KlausLyu/gitdemo.git (push)

# 刪除遠程倉庫名(不是刪除遠程倉庫,遠程倉庫網頁可直接刪除,本地倉庫 rm -rf .git)
git remote remove klausLyu

11、遠程倉庫和本地倉庫的同步 ()

# 從遠程倉庫同步到本地倉庫    (上班前download master到本地倉庫)
git pull origin master          # master可換成branch名,tag名,分別下載分支或標籤

# 從本地倉庫提交同步代碼到遠程倉庫(下班前 upload master到遠程倉庫,也可以只上傳分支,master換成分支即可)
git push origin master          # master可換成branch名,tag名,分別上傳分支或標籤

12、克隆遠程倉庫到本地目錄下—- 先創建遠程倉庫,再有本地倉庫

# 自動生成對應的本地倉庫,本地倉庫與遠程倉庫相對應, https://github.com/TryGhost/Ghost.git爲目標遠程倉庫地址
git clone https://github.com/TryGhost/Ghost.git

13、分支

# 創建分支
git branch branch_name              # 語法
git branch dev

# 查看分支
git branch

# 切換分支
git checkout branch_name            # 語法
git checkout dev                    # 會提示:已切換到dev分支

# 創建新分支並切換到該分支
git checkout -b abc                 # ==  (git branch abc; git checkout abc)

# 合併分支,將其他分支合併到當前分支
git merge other_branch_name         # 語法

# 刪除分支,刪除不需要的分支
git branch -d branch_to_deleted     # 語法
git branch -d abc

兩個分支中文件名重複且修改內容不一致怎麼辦?

衝突提示:...衝突(內容)...
解決方案:
查看衝突:git diff 文件名稱
衝突內容“
    <<<<<<<<<<HEAD
        當前分支修改的內容
    ==========
        其他分支修改的內容
    >>>>>>>>>>其他分支名稱
手動修改要保存的內容
    git add 文件名稱
    git commit -m ''
    got merger 其他分支名稱

14、標籤

# 創建標籤
git tag label_name                  # 默認標籤是打在最新提交的commit上的

# 查看標籤
git tag                             # 查看當前的所有的標籤
git show labe_name                  # 查看標籤labe_name的內容

# 對已操作過的commit進行添加標籤:
git tag -a 標籤名稱 -m '標籤註釋' commit的id

# commit的id方法
git log --pretty=oneline                    # 完整顯示commit的id
git log --prett=oneline --abbrev-commit     # id的簡寫
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章