git使用說明

版本控制

  • 版本控制是一種記錄一個(gè)或若干文件內(nèi)容變化,以便將來查閱特定版本修訂情況的系統(tǒng)。

  • 常見的版本控制系統(tǒng):

    • 本地版本控制系統(tǒng)
    • 集中式版本控制系統(tǒng)(SVN)
    • 分布式版本控制系統(tǒng)(Git)
  • Git的優(yōu)勢(shì):

  • 重要概念:

    • 已提交(committed):該文件已經(jīng)被安全地保存在本地?cái)?shù)據(jù)庫(kù)中,只有這種狀態(tài)才可以將其push到遠(yuǎn)程倉(cāng)庫(kù)中。
    • 已修改(modified):修改了某個(gè)文件,但還沒有提交保存。
    • 已暫存(staged):把已修改的文件放在下次提交時(shí)要保存的清單中(這里的提交指的是本地倉(cāng)庫(kù))
1.首先設(shè)置用戶名和郵箱
git config --global user.name "你的Github用戶名"
git config --global user.name github注冊(cè)時(shí)的郵箱
2.clone項(xiàng)目
  • clone項(xiàng)目前,需要建立公鑰私鑰對(duì):

    • ssh-keygen -t rsa -b 4096 -C "yan358941877@163.com"
    • 拷貝id_rsa.pub中的內(nèi)容到github中的SSH and GPG keys
    • ssh-rsa AAAAB3NzaC1yc2EAAAADAQA.....
  • 用于把一個(gè)GitHub中的一個(gè)項(xiàng)目clone到本地變?yōu)楸镜貍}(cāng)庫(kù)

git clone git@github.com:yan358941877/blog.git
// git@github.com:yan358941877/blog.git是GitHub中,一個(gè)項(xiàng)目的SSH
3.添加文件并提交
  • 打開相應(yīng)文件夾并創(chuàng)建文件
# 創(chuàng)建文件 Linux
touch a.md
# 在文件里寫入一個(gè)字符串
echo "hello" > a.md
# 查看當(dāng)前倉(cāng)庫(kù)狀態(tài)
git status
# 把當(dāng)前文件夾下的新增和刪除全都放入暫存區(qū)
git add a.md 或者 git add .
# 提交文件:參數(shù)a表示直接提交; 參數(shù)m及后面的字符串"add"表示當(dāng)前提交的說明信息(文件的修改)
git commit -am "add"
# 將本地倉(cāng)庫(kù)推送到遠(yuǎn)程倉(cāng)庫(kù)
git push
# 將當(dāng)前本地庫(kù)里的改動(dòng)推送到遠(yuǎn)程庫(kù)(origin)的master分支
或 git push origin master
4.git pull操作
  • 由于git是一個(gè) 分布式版本控制系統(tǒng) ,當(dāng)別人對(duì)倉(cāng)儲(chǔ)進(jìn)行修改后,這時(shí)你需要向倉(cāng)儲(chǔ)添加文件,為了保持所有倉(cāng)儲(chǔ)內(nèi)容的一致性,需要先執(zhí)行g(shù)it pull操作,使得本地與遠(yuǎn)程倉(cāng)儲(chǔ)的內(nèi)容一致,然后再向遠(yuǎn)程倉(cāng)儲(chǔ)添加新建的文件。
5.修改刪除文件
  • 修改文件
vim a.md(或者直接修改文件)
git add .
# 如果提交消息包含大量字符串,提交的參數(shù)不用加 m,此時(shí)會(huì)進(jìn)入vim界面,可以編輯說明信息
git commit -a
git push origin master
  • 刪除文件
rm -rf a.md (Linux下命令)
git add .
git commit -am "刪除a.md"
git push
# 如果之前已經(jīng)git push origin master過,后面可以直接簡(jiǎn)化為git push
6.本地創(chuàng)建一個(gè)git項(xiàng)目推送到遠(yuǎn)程空倉(cāng)庫(kù)
  • 首先在GitHub上創(chuàng)建一個(gè)空倉(cāng)庫(kù),并得到空倉(cāng)庫(kù)的SSH(例如git@github.com:yan358941877/javascript.git)
mkdir newProject
cd newProject

#把一個(gè)文件夾初始化成一個(gè)本地git倉(cāng)庫(kù)
#注意倉(cāng)庫(kù)和文件夾的區(qū)別在于倉(cāng)庫(kù)下有一個(gè)隱藏的.git文件夾,里面保存了相關(guān)信息
#對(duì)于一個(gè)倉(cāng)庫(kù),刪除.git文件夾,就變成一個(gè)普通文件夾了
git init
touch index.html
echo "hello" > index.html

git add .
git commit -am "init"

git remote add origin git@github.com:yan358941877/javascript.git
git  push -u origin master
#查看本地庫(kù)里記錄的遠(yuǎn)程庫(kù)地址
git remote -v
#為遠(yuǎn)程庫(kù)的地址添加標(biāo)簽/別名——origin
git remote add origin git@github.com:yan358941877/javascript.git
#推送到遠(yuǎn)程庫(kù)地址
git push origin master

git remote add abcd git@github.com:yan358941877/javascript.git
#推送到遠(yuǎn)程庫(kù)地址
git push abcd master

#刪除遠(yuǎn)程庫(kù)地址的標(biāo)簽/別名
git remote remove abcd
#修改origin標(biāo)簽對(duì)應(yīng)的地址
git remote set-url origin git@github.com:abcdef.git
#修改遠(yuǎn)程庫(kù)地址的標(biāo)簽/別名
git remote rename abcd coding
7.分支操作
  • 查看(當(dāng)前項(xiàng)目)本地所有分支:git branch -a

    • *代表當(dāng)前所處的分支 master代表主干分支
    • 紅色的代表遠(yuǎn)程分支 remotes/origin/master表示遠(yuǎn)程origin地址上的主干分支
  • 創(chuàng)建本地庫(kù)dev分支:git branch dev

  • 切換到dev分支:git checkout dev

    1. 在dev分支下進(jìn)行相關(guān)操作
      touch b.html
      git add .
      git commit -am "add b.html"
    
    1. 查看當(dāng)前文件夾,發(fā)現(xiàn)存在b.html
    2. 切換到master分支,再次查看文件夾,發(fā)現(xiàn)b.html消失
  • 推送到origin地址的dev分支上:git push origin dev

  • 合并分支:

    • git checkout master
    • git merge dev:將dev分支的內(nèi)容合并到當(dāng)前上(可以不是主干分支)
    • git push origin master
8.沖突
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,848評(píng)論 4 54
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,863評(píng)論 9 163
  • 下課后 學(xué)生:“老師,我來問題?!?老師:“怎么又是你?” 學(xué)生:“可您說不懂就問才能學(xué)的透徹! 要 找您問題,聽...
    余歡不夏閱讀 335評(píng)論 2 1
  • 如果一個(gè)人不表明立場(chǎng),你不能斷定他就是個(gè)心機(jī)婊,如果一個(gè)人根本沒有立場(chǎng),那他一定是個(gè)害人傻。我們可以和有心機(jī)的人合...
    我本色閱讀 11,518評(píng)論 0 6

友情鏈接更多精彩內(nèi)容