來(lái)到新的公司一直同事們都是用命令行來(lái)進(jìn)行 git 操作。抽空學(xué)習(xí)下,并記錄下。
一、Git 通過 homebrew 來(lái)安裝的,安裝 homebrew 自行 google
Git 命令:
git init 創(chuàng)建版本庫(kù)
git add 添加暫存區(qū)
git commit 提交到本地
git status 查看當(dāng)前文件狀態(tài)
git diff 查看文件不同
git log 查看版本號(hào)和哪些操作
git reflog 之前的操作命令
git reset —hard +版本號(hào) 回退版本
git reset ?—hard HEAD^ 回退到上個(gè)版本
二、工作區(qū)暫存區(qū)
Git 在本地會(huì)有一個(gè)工作區(qū)和一個(gè)版本庫(kù)。
工作區(qū)就是電腦能看到的目錄
版本庫(kù)是工作區(qū)內(nèi)的隱藏目錄 .git 。
版本庫(kù)里面存了很多東西,有一個(gè) stage 暫存區(qū),Git 會(huì)為我們自動(dòng)創(chuàng)建第一個(gè)分支 master,以及指向 master 的 HEAD 指針
1、git add 是將工作區(qū)的文件添加到 stage?暫存區(qū)
2、git commit 是將 stage 暫存區(qū)的內(nèi)容提交到 master 分支,則暫存區(qū)就沒有數(shù)據(jù)了
管理修改
git 是跟蹤并管理修改的。一次修改對(duì)應(yīng)一次 git add 和 git commit,每次 git commit 只會(huì)提交 stage 暫存區(qū)的內(nèi)容。
三、撤銷修改
Git 可以撤銷修改。
git checkout — fileName 兩種狀態(tài)。
1、在你修改后沒有 git add ,此時(shí)此命令是將 fileName 文件撤銷回上次提交的狀態(tài)。
2、在你修改后已經(jīng) git add 了,但在 git add 后你又修改了該文件,此命令的作用就是將文件撤回上次 git add 時(shí)的狀態(tài)。即退回 stage 暫存區(qū)的文件狀態(tài)。
在你 git add 后同時(shí)也可以撤銷 已經(jīng) git add 的內(nèi)容,
git reset HEAD — fileName 可以將已經(jīng)提交到 stage 暫存區(qū)的文件退回到 工作區(qū)。即出現(xiàn)已經(jīng) git add 的文件變?yōu)?未 git add。
四、刪除文件
刪除文件有兩種情況,誤刪,真的是刪
1、真的刪除文件。刪除該文件。然后 git rm 文件名 和 git commit 來(lái)從版本庫(kù)中刪除文件
2、誤刪,刪除也是一種修改,所以可以通過撤銷修改來(lái)恢復(fù)文件。git checkout — filName 從版本庫(kù)中恢復(fù)。
五、遠(yuǎn)程倉(cāng)庫(kù)
添加遠(yuǎn)程倉(cāng)庫(kù)
可以在 github 上創(chuàng)建一個(gè) repository。
然后可以通過將本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù) repository 關(guān)聯(lián)起來(lái),然后通過 push 將本地倉(cāng)庫(kù)內(nèi)容推送到遠(yuǎn)程倉(cāng)庫(kù)(即 github 上的 repository)。
關(guān)聯(lián) github 倉(cāng)庫(kù): git remote addoriginhttps://github.com/mdzzyyy/StudyGit.git
origin 是為遠(yuǎn)程倉(cāng)庫(kù)起的名字。
https://github.com/mdzzyyy/StudyGit.git是倉(cāng)庫(kù)的地址
推送本地倉(cāng)庫(kù):git push -u origin master ?將本地的 master 分支推送到遠(yuǎn)程。
之后每次修改都可以通過 git push 來(lái)推送到遠(yuǎn)程倉(cāng)庫(kù)
另一種:是直接在 githud 上創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù),然后通過 git clone 來(lái)克隆到本地
然后 git init 和 git add 和 commit 來(lái)創(chuàng)建本地 git 倉(cāng)庫(kù)和提交本地倉(cāng)庫(kù)
通過 git push 來(lái)推送到遠(yuǎn)程倉(cāng)庫(kù)。
未結(jié)束。