git的基本使用及原理

git branch testing最近在學習git的使用,看到比較不錯的是git手冊,以及博客。感覺git手冊還是值得多看幾遍的,每次看的時候都會發現有不同的收獲。推薦新手看git手冊,講解的比較詳細,幾乎能解決你所有的疑點,讓你了解到git的原理。

git與svn最大的不同是,git是分布式的,相當于每個人都有一個完整的代碼庫,而且可以指定不同人之間相互合作,而svn這類的集中式的則是共享同一份代碼庫,相互影響著。

獲取git項目倉庫的方法有兩種,第一種是重新初始化,另一種是克隆一個現有的git倉庫。

剛開始一直困惑我的是,當我fork了一個已有的倉庫以后,我的跟之前的有什么關系呢?我怎么知道我當前所處的倉庫和分支呢,怎么跟我自己的關聯呢?后來經過多次試驗以后才明白,克隆一個倉庫到本地以后,該倉庫就是默認的orgin,這時候,你需要進入到項目所在目錄,然后,添加你自己fork后得到的那個倉庫。(git add remote url)。這時候,你本地的文件都是已經被追蹤了,直接改就行。當你第一次提交時需要使用(git push -u 你的倉庫名 你的分支),以后就都可以使用(git push)了。參考博客

后經過

1.初始化:

git init

2.克隆

git clone https://github.com/libgit2/libgit2 倉庫名

git的文件狀態有三種:untracked、modified、staged,因此要經常檢查一下文件的狀態

git status

git status -s ----簡短的格式輸出

$ cat .gitignore----忽略以o、a、~結尾的文件(不提交和監測)

*.[oa]

*~

git diff----查看尚未暫存的文件更新了哪些部分(只顯示尚未暫存的改動,而不是自上次提交以來所做的所有改動)

git diff --cached


提交文件:

git add?

git commit -m “修改的說明信息”----如果只輸git commit會跳出vim編輯器,按ZZ保存并退出,ZQ不保存退出。

git commit -a -m 'added new benchmarks'--跳過暫存區域,將所有文件一并提交

git rm PROJECTS.md--移除文件,下次提交文件不會納入版本管理

git rm --cached 文件名---移除git倉庫中的文件,但不移除本地的(一般用于不小心提交的日志文件)

git rm \*~---刪除以~結尾的文件

git log---查看提交歷史

git log -p -2----p用來顯示每次提交的內容差異,-2 來僅顯示最近兩次提交

git log --stat---看到每次提交的簡略的統計信息

git commit --amend--撤銷操作,有漏掉了幾個文件沒有添加,或者提交信息寫錯了,這個命令會將暫存區中的文件提交。

git reset HEAD 文件名---取消暫存某個文件。

git checkout --文件名---撤銷對文件的修改,拷貝了之前的文件版本一個文件來覆蓋它,慎用

git remote--查看遠程倉庫

git remote -v-----查看遠程倉庫的url及其簡寫

git remote add 簡稱 url----添加遠程倉庫

git fetch pb----pb為遠程倉庫簡稱,拉取倉庫中有但你沒有的信息

git push origin master--推送到遠程倉庫

git push -u 你的倉庫名 你的分支--推送到分支

git remote show 倉庫名---查看倉庫詳細信息

git remote rename 舊名 新名---遠程倉庫重命名

git remote rm 倉庫名---移除遠程倉庫

git tag---列出標簽

git tag v1.4----添加輕量標簽,唯一的信息就是v1.4

git tag -a v1.4 -m 'my version 1.4'---添加附注標簽,包含標簽名和描述信息

git push origin v1.5---共享標簽默認情況下,git push 命令并不會傳送標簽到遠程倉庫服務器上

git push origin --tags---推送所有不再git的標簽



分支

git branch 分支名---創建分支,一個分支就是一個指針,指向不同的版本

git log --oneline --decorate---查看各個分支當前所指的對象

git checkout 分支名---切換到某個分支,在切換分支時注意提交暫存區的文件,工作目錄會恢復到該分支最后一次提交時的樣子。

git checkout -b 分支名---新建分支,并切換到改分支上

git checkout master----將iss53分支合并到master分支上

git merge iss53

git branch -d 分支名----刪除某個分支,若分支有未合并信息是無法刪除的,可用-D強制刪除

git branch---列出分支名

git branch -v----列出分支名及信息

git branch --merged------查看哪些分支已經合并到當前分支(不帶星號的已經合并了,可以刪掉)

git branch --no-merged----查看所有包含未合并工作的分支


git 版本回退


使用git log 查看版本號

git reset --hard 版本號(一般為前7位);

取消回退:用 git reflog查看版本號

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容