git使用總結

git基本原理

文件的三種狀態(tài)
對于任何一個文件,在 Git 內都只有三種狀態(tài):已提交(committed),已暫存(staged)和 已修改(modified)。
已提交——該文件已經(jīng)被安全地保存在本地數(shù)據(jù)庫中了;
已暫存——表示把已修改的文件放在下次提交時要保存的清單中。
已修改——修改了某個文件,但還沒有提交保存;

由此我們看到 Git 管理項目時,文件流轉的三個工作區(qū)域:Git 的工作目錄,暫存區(qū)域,以及本地倉庫。

工作目錄,暫存區(qū)域,以及本地倉庫

基本的 Git 工作流程如下:
1.在工作目錄中修改某些文件。
2.對修改后的文件進行快照,然后保存到暫存區(qū)域。
3.提交更新,將保存在暫存區(qū)域的文件快照永久轉儲到 Git 目錄中。

所以,我們可以從文件所處的位置來判斷狀態(tài):如果是 Git 目錄(git log查看)中保存著的特定版本文件,就屬于已提交狀態(tài);如果作了修改并已放入暫存區(qū)域,就屬于已暫存狀態(tài);如果自上次取出后,作了修改但還沒有放到暫存區(qū)域,就是已修改狀態(tài)。

簡單使用

起步
初次使用需要設置姓名和郵箱

git config --global user.name "你的姓名"
git config --global user.email johndoe@example.com

clone 項目
用于把一個GitHub的項目clone(下載)到本地變?yōu)楸镜貍}庫

git clone git@XXXXXX.git

添加文件并提交

# 創(chuàng)建文件
touch a.md
# 在文件里寫入一個字符串  
echo "hello" > a.md
#git status用于查看狀態(tài)
git status
# 把當前目錄下的新增和修改的文件添加到暫存區(qū)
git add .
# 把暫存區(qū)的更新提交到本地庫
git commit -am "add file"
# 首次操作使用git push origin master ,把當前本地庫里的改動推送到遠程庫(origin)的master 分支,之后git push 就好了
git push origin master

修改刪除文件

# 把遠程倉庫的變動更新合并到本地倉庫
git pull

# 修改文件
vim a.md
git add .

# 這里需要注意,如果提交消息包含大量字符串,提交參數(shù)不用加 m
# 此時會進入 vim 界面,按下i進入編輯狀態(tài),進行編輯
# 編輯完成后按下 esc 進入命令態(tài), 輸入 :wq 保存退出 vim
git commit -a(all)指所有的添加刪除都提交到本地倉庫

git push origin master

# 刪除文件
rm -rf a.md
git add .
git commit -am "刪除a.md"

#如果之前已經(jīng)git push origin master 過,后面可以直接簡化成 git push
git push

復雜使用

本地創(chuàng)建一個git 項目推送到遠程空倉庫

mkdir newProject
cd newProject

# 把一個文件夾初始化成一個本地 git 倉庫
# 注意 倉庫和文件夾的區(qū)別在于倉庫下有一個隱藏的 .git文件夾,里面有一些信息
# 對于一個倉庫,刪除.git文件夾,就變成一個普通文件夾了
# git init對文件夾初始化 生成一個.git文件夾 如果原本已經(jīng)是git倉庫 git init會用新生成的git文件夾代替原本的
git init

touch index.html
echo "hello" > index.html

git add .
git commit -am "init"
# 查看本地庫里記錄的遠程庫地址
git remote -v

# 這里把遠程庫的地址添加個標簽叫origin
git remote add origin git@github.com:jirengu/blog2.git
# 推送到遠程庫地址
git push origin master
#慎用,這樣會強制推送,會覆蓋別人的代碼
git push -f origin master 

# 在添加一個遠程庫的標簽
git remote add gitlab git@gitlab.com:abc/blog.git

# 推送到gitlab標簽的地址上
git push gitlab master

# 刪除gitlab 標簽
git remote remove gitlab

# 修改origin標簽對應的地址
git remote set-url origin git@github.com:jirengu/blog3.git

# 把 gitlab 標簽改名為coding
git remote rename gitlab coding

分支操作

# 創(chuàng)建本地庫dev 分支
git branch dev

# 切換到dev 分支
git checkout dev

touch b.md
git add .
git commit -am "add b.md"

# 推送到origin地址的dev分支上
git push origin dev

分支合并

#切換到master分支
git checkout master

# 把 dev 分支上的內容合并到當前分支(master) 上
git merge dev

沖突

當自己和別人改同一個文件的同一個地方,在執(zhí)行 git pull時更新本地合并時會出現(xiàn)沖突
修改沖突文件
重新提交

問答題

1. git clone url和 git pull有什么區(qū)別
clone: 用于把一個GitHub項目clone(下載)到本地變?yōu)楸镜貍}庫
pull:把遠程倉庫的變動更新合并到本地倉庫

2. 本地倉庫和遠程倉庫的區(qū)別?
本地倉庫 就是你電腦上的一個倉庫;
遠程倉庫就是在公網(wǎng)服務器上的倉庫。
git離線提交的原理:你修改的文件,保存動作是存放在本地硬盤,提交到本地倉庫,就是說文件修改信息保存到.git文件夾,.git會記錄文件歷史版本。遠程推送就可以將本地倉庫修改的文件推送到遠程倉庫去,這里說的遠程倉庫可以是github,gitlab之類服務器上的倉庫。

3.origin 代表什么?
代表遠程倉庫的地址
origin master指遠程倉庫的地址的master分枝

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • git作為時下最流行的代碼管理工具,Git權威指南總結了十條喜歡Git的理由: 異地協(xié)同工作; 現(xiàn)場版本控制; 重...
    古斟布衣閱讀 1,903評論 0 12
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,839評論 4 54
  • 白羊男喜歡一個人是什么表現(xiàn)? 作為一個資深的白羊男。且有很長的情感輔導經(jīng)歷的我來說,這是一個并不簡單的問題。之前我...
    暖北Nathan閱讀 15,216評論 1 14
  • 中秋節(jié)早晨,三個人分成兩組,嘎爹向北奔單位,嘎娘拉著嘎娃向南回老家。 待嘎娘和嘎娃趕到家,已經(jīng)是上午八點多了。 嘎...
    a宮雨閱讀 425評論 0 3
  • 【微漣微】FORGET 序 雨,鋪天蓋地的雨。 在微微漾起泥土氣息的潮濕的空氣中,朝微抬起頭望著蒼白天空。...
    Ourglory閱讀 302評論 0 0

友情鏈接更多精彩內容