Git的簡(jiǎn)單使用

創(chuàng)建一個(gè)空目錄

?$ mkdir git??

?$ cd git

??$ pwd

把這個(gè)目錄初始化為Git可以管理的倉庫

?$ git init

在目錄下創(chuàng)建一個(gè)readme.rtf文件,把文件添加提交到倉庫

?$ git add readme.rtf

?$ git commit -m “wrote a read file”

展示倉庫當(dāng)前的狀態(tài)

?$ git status

文件被修改后,查看修改了什么內(nèi)容

?$ git diff

查看提交的歷史記錄

?$ git log

縮略展示提交的歷史記錄

?$ git log- -pretty=oneline

回退到上一個(gè)版本

?$ git reset - -hard HEAD^

回退到上上個(gè)版本

?$ git reset - -hard HEAD^^

回退到前100個(gè)版本

?$ git reset- -hard HEAD~100

回退到某個(gè)版本

?$ git reset- -hard 123456(版本號(hào),可以不寫全)

找到輸入過的命令

?$ git reflog

查看工作區(qū)和版本庫里最新版本的區(qū)別

?$ git diff HEAD - - readme.rtf

丟棄工作區(qū)的修改

?$ git checkout - - readme.rtf

撤銷暫存區(qū)的修改,放回工作區(qū)

?$ git reset HEAD readme.rtf

刪除某個(gè)文件

?$ rm test.rtf

從版本庫恢復(fù)刪掉的文件

?$ git checkout - - test.rtf

從版本庫刪除某個(gè)文件

?$ git rm test.rtf

??$ git commit -m “remove test.rtf”

創(chuàng)建SSH Key

?$ssh-keygen -t rsa -C“xxxxxxxx@163.com”

?id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人

把本地倉庫的內(nèi)容推送到GitHub的倉庫

?$git remote add origin git@github.com:xxxxxxxxx/learngit.git

?$ git push -u origin master (第一次加-u參數(shù))

把本地倉庫提交到服務(wù)器

?$ git push origin master

把服務(wù)器的倉庫克隆到本地

?$git clone git@github.com:xxxxxxxxx/gitskills.git

?$ git clonehttps://github.com/xxxxxxxxx/gitskills.git

創(chuàng)建一個(gè)dev分支,并切換到dev分支

?$ git checkout -b dev

-b表示創(chuàng)建并切換,等價(jià)于

?$ git branch dev

?$ git checkout dev

查看當(dāng)前分支

?$ git branch

把dev分支合并到當(dāng)前分支

?$ git merge dev

刪除dev分支

?$ git branch -d dev

查看分支合并情況

?$git log - -graph - -pretty=oneline - -abbrev-commit

以普通模式合并,保留分支的信息

?$git merge --no-ff -m"merge with no-ff"dev

保存當(dāng)前工作現(xiàn)場(chǎng),以后可以恢復(fù)繼續(xù)工作

?$ git stash

顯示存儲(chǔ)的工作現(xiàn)場(chǎng)

?$ git stash list

恢復(fù)工作現(xiàn)場(chǎng),并且不刪除存儲(chǔ)的工作現(xiàn)場(chǎng)

?$ git stash apply

刪除存儲(chǔ)的工作現(xiàn)場(chǎng)

?$ git stash drop

恢復(fù)工作現(xiàn)場(chǎng),并刪掉存儲(chǔ)的工作現(xiàn)場(chǎng)

?$ git stash pop

強(qiáng)行刪除一個(gè)沒有被合并的分支

?$git branch -D

查看遠(yuǎn)程倉庫的信息

?$ git remote

查看遠(yuǎn)程倉庫更詳細(xì)的信息

?$? git remote -v

推送到服務(wù)器的dev分支

?$ git push origin dev

獲取服務(wù)器最新更改

?$ git pull

在本地創(chuàng)建和遠(yuǎn)程分支對(duì)應(yīng)的分支

?$git checkout -b branch-name origin/branch-name

創(chuàng)建本地分支和遠(yuǎn)程分支的鏈接關(guān)系

?$ git branch --set-upstream branch-name origin/branch-name

在Git中打一個(gè)標(biāo)簽,首先切換到需要打標(biāo)簽的分支上

?$ git tag v1.0

在對(duì)應(yīng)的歷史提交上打標(biāo)簽

?$ git tag v0.9 123456(提交的id)

查看標(biāo)簽信息

?$ git show v0.9

指定標(biāo)簽信息

?$ git tag -a -m “abcd…”

用PGP簽名標(biāo)簽

?$ git tag -s -m “abcd…”

刪除標(biāo)簽

?$ git tag -d v0.1

推送標(biāo)簽到服務(wù)器

?$ git push origin v1.0

推送所有未推送的標(biāo)簽到服務(wù)器

?$ git push origin - - tags

刪除遠(yuǎn)程的標(biāo)簽,先刪除本地,然后從遠(yuǎn)程刪除

?$ git push origin :refs/tags/v0.9

忽略倉庫里某些文件,讓其不參與提交,可編寫.gitignore文件,然后輸入要忽略的文件名

配置別名,比如st表示status,co表示checkout,ci表示commit,br表示branch

?$ git config - -globalalias.ststatus

?$ git config - -globalalias.cocheckout

?$ git config - -globalalias.cicommit

?$ git config - -globalalias.brbranch

搭建Git服務(wù)器

首先準(zhǔn)備一臺(tái)運(yùn)行Linux的機(jī)器

??1.安裝git

?$ sudoapt-getinstall git

?2.創(chuàng)建一個(gè)git用戶

????$ sudoadduser git

???3.創(chuàng)建證書登錄

???手機(jī)用戶的id_rsa.pub文件,把所有公鑰導(dǎo)入到/home/git/.ssh/authorized_keys文件里,一行一個(gè)

???4.初始化Git倉庫

??先選定一個(gè)目錄作為Git倉庫,假定是/srv/sample.git,在/srv目錄下輸入命令:

??$ sudogit init --bare sample.git

??Git就會(huì)創(chuàng)建一個(gè)裸倉庫,裸倉庫沒有工作區(qū),因?yàn)榉?wù)器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到服務(wù)器上去改工作區(qū),并且服務(wù)器上的Git倉庫通常都以.git結(jié)尾。然后,把owner改為git:

??$ sudochown -R git:git sample.git

?5.禁用shell登錄

?出于安全考慮,第二步創(chuàng)建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行:

?git:x:1001:1001:,,,:/home/git:/bin/bash

?改為:

?git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

?這樣,git用戶可以正常通過ssh使用git,但無法登錄shell,因?yàn)槲覀優(yōu)間it用戶指定的git-shell每次一登錄就自動(dòng)退出

?6.克隆遠(yuǎn)程倉庫

??$git clone git@server:/srv/sample.git

最后編輯于
?著作權(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)容

  • 前提: SVN屬于集中式管理:需要依賴網(wǎng)絡(luò)以及“中央管理庫”Git屬于分布式管理:不需要網(wǎng)絡(luò),任何人本地都是一個(gè)完...
    Eddiegooo閱讀 517評(píng)論 2 2
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,850評(píng)論 4 54
  • 1.設(shè)置 初次使用需要設(shè)置姓名和郵箱git config --global user.name "git用戶名"g...
    jrg陳咪咪sunny閱讀 834評(píng)論 0 1
  • 我的心里話,請(qǐng)你聽一聽! 家庭無愛,就是牢籠。有愛,就是港灣。 金錢花了,才有價(jià)值。存了,就是數(shù)字。 人生用心,才...
    葉偉鋒閱讀 255評(píng)論 0 0
  • 本想殺盡天下負(fù)心者,卻害怕拔刀相見時(shí)他已不該殺。一個(gè)情緒很多的平凡人,爭(zhēng)強(qiáng)好勝,只看得起最厲害的人,總認(rèn)為自己擁有...
    爛人君子閱讀 513評(píng)論 0 1

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