git使用之一——git的基本使用
部落格: 安卓之家
微博: 追風917
CSDN: 蔣朋的家
簡書: 追風917
部落格園: 追風917
git使用之一——git的基本使用
git使用之二——.gitignore檔案詳解
git使用之三——.git資料夾詳解
git使用之四——windows下github桌面版的安裝
git使用之五——Github上fork專案後與原專案保持同步
git使用之六——github協同工作的Fork+Pull Request
git使用之七——Android Studio下git的正確使用
git初識
git是一種分散式版本控制系統,有linux核心開發者,著名的黑客 Linus Torvalds 大神編寫。比傳統的svn優勢明顯,詳細請參考這裡:百度百科:git
幾個常用名詞:
1 init:新建一個Git管理專案。
2 add:新增新的檔案(資料夾)到Git專案中,如果新增資料夾,該資料夾下所有檔案將被包含。同時可以使用rm,mv從git專案中刪除或是重新命名檔案(資料夾)。
3 commit:提交到倉庫,告訴Git你想要記錄現在的操作,Git會保留一個當前修改過檔案的快照。
4 reset:如果你正在編輯的檔案亂了,可以選擇從上一次的commit的點重新開始編輯,通常是選擇恢復到上一個編輯點。
5 check out:一般是在branch間切換。
6 branch:分支,master就是其中一個。
7 merge:合併分支,如果我正在編輯一個版本a,別人在編輯版本b,我們想把兩個版本合成一個,就可以用merge。當然,合的過程中,有時候會檢出有哪些地方不一樣,詢問到底要保留哪一個,需要手動處理不同的地方。事實上,這更像一個審查的過程。
8 diff:找出兩個文件或目錄的不同。
9 revert:回滾到指定的commit的點。
和遠端倉庫的互動:
10 clone:從遠端倉庫得到整個專案的拷貝。
11 pull:類似與SVN中的update動作,如果你之前clone得到某專案的一份拷貝,用pull可以更新到最新版本。相當於fetch + merge
12 push:把本地倉庫的這份拷貝push到伺服器。
13 HEAD:這就是一個指標,可以有任意指向,預設指向master分支的最後一次commit的點,這貨控制著後面的發展,可以使用checkout更改HEAD指向。
14 master:這是系統預設生成的本地分支,當然你可以自定義,這只是方便操作而已
15 working tree:剛check out過來,並未修改的檔案,也就是你在對哪些檔案進行操作。
16 index(staging area):有修改但是還沒有commit的檔案,新加進來的檔案也在這裡,就是暫存區咯
17 git directory(repository):修改並commit後,一個檔案快照被推送到這裡,被儲存起來,就是本地倉庫
易混淆名詞對比
1 log和status:log是檢視commit的歷史;status是檢視是否有檔案未commit,沒有的話,當前的Git project是clean的。
2 reset和revert:首先,‘reset –hard’到某commit點後,用log檢視,該點後所有commit都看不到了,檔案被恢復到commit點時的樣子;而revert到某commit點之後,用log檢視,可以看到多了一個commit點,檢視檔案內容,被恢復到commit點。還有,必須是project clean時,才能執行revert。
git中檔案的幾種狀態
1 unstaged:git倉庫中沒有此檔案的相關記錄
2 modified:git倉庫中有這個檔案的記錄,並且此檔案當前有改動
3 staged:追加,刪除或修改的檔案被暫時儲存,這些追加,刪除和修改並沒有提交到git倉庫
4 commited:追加或修改的檔案被提交到本地git倉庫(git倉庫中大部分都是這種檔案,所以git status不顯示這些檔案)
git全域性部署
$ git config --global user.name "your name"
$ git config --global user.email "your_email@xx.com"
本地建立ssh key
命令:
ssh-keygen -t rsa -C "your_email@xx.com"
完成後會要求確認路徑和輸入密碼,我們這使用預設的一路回車就行。成功的話會在~/下生成.ssh資料夾。進去,開啟id_rsa進去,開啟id_rsa.pub,這就是我們需要的ssh key。回到github,進入Account
新增key到github
開啟github,進入Account Settings,左邊選擇SSH Keys,Add SSH Key,title隨便填,貼上key。為了驗證是否成功,在git bash下輸入:
$$ ssh -T git@github.com
如果是第一次的會提示是否continue,輸入yes就會看到:You’ve successfully authenticated, but GitHub does not provide shell access 。這就表示已成功連上github。
提交、上傳
1 建立倉庫
到你的github頁面,建立一個倉庫,比如HelloWorld
2 提交
本地新建一個資料夾HelloWorld(和你的github裡的倉庫名稱一致),進入該資料夾,右鍵git bash,初始化git,新增檔案並提交commit
$ git init //初始化git,建立.git資料夾
$ git add README.md //建立一個待提交的檔案README.md
$ echo "hello world!" >> README.md //檔案裡寫點東西,問候下美好的世界
$ git commit . -m "first commit" //提交檔案,.是當前目錄,就是提交所有檔案
3 上傳
$ git remote add origin git@github.com:yourName/yourRepo.git
$ git push -u origin master //可能需要輸入使用者名稱密碼之類哦
origin可以是任意名字哦,是你遠端倉庫名,當然你可以新增多個哦,push的時候指定一個就可以。後面的yourName和yourRepo表示你再github的使用者名稱和剛才新建的倉庫,加完之後進入.git資料夾,開啟config檔案,這裡會多出一個remote “origin”內容,這就是剛才新增的遠端地址,也可以直接修改config來配置遠端地址。
當然後面的地址是ssh形式,前面沒有部署金鑰的話是出錯的哦,你也可以用https形式來上傳:
$ git remote add origin https://github.com/yourName/yourRepo.git
這樣你就會在你的github對應的倉庫下看到對應的檔案了哦。
git push命令會將本地倉庫推送到遠端伺服器。git pull命令則相反。
$ git pull -u origin master //從遠端伺服器更新到本地倉庫,相當於git fetch + git merge
修改完程式碼後,使用git status可以檢視檔案的差別,使用git add 新增要commit的檔案,也可以用git add -i來智慧新增檔案。之後git commit提交本次修改,git push上傳到github。
.gitignore檔案
見我之前的博文:
tag標籤
tag的最主要作用是記錄軟體版本號,比如版本號更新的時候可以建一個“v2.0”、“v3.1”之類的標籤,這樣在以後回顧的時候會比較方便。tag的使用很簡單,主要操作有:檢視tag、建立tag、驗證tag以及共享tag。
$ git tag v0.1 //給上一次提交新增標籤v0.1
$ git tag -d v0.1 //刪除標籤v0.1
$ git tag v2.4 9aaa93e //給版本號9aaa93e,這是一個索引雜湊值,新增標籤v2.4
$ git tag //檢視所有本地tag
$ git push origin tag v0.5 //push本地標籤v0.5到遠端倉庫
$ git push --tags // push所有本地標籤到遠端倉庫
$ git fetch --tags //把所有的遠端倉庫的tag拉到本地倉庫
$ git fetch origin tag v0.5 //把遠端倉庫origin主機的tag v0.5拉到本地倉庫
$ git push origin --delete tag v0.5 //刪除遠端倉庫的v0.5的tag
$ git push origin :refs/tags/v0.5 //push一個空的tag到v0.5,相當於刪除遠端倉庫的v0.5的tag
git分支
$ git branch jp //建立一個新的分支jp並切換到jp分支,-b引數就是切換到新建的分支
$ git checkout -b jp //新建分支並切換到jp分支
$ git checkout jp //切換到分支jp
$ git branch -av //檢視分支,-a檢視所有分支,-v包括分支索引和提交資訊
$ git branch -D jp //刪除分支jp
$ git branch -m jp jp1017//重新命名,把jp分支重新命名為jp1017
$ git merge jp //合併jp分支
常用遠端倉庫
1 github:程式碼多的很
2 gitcafe:有私有庫,但是收費
3 oschina:私有庫免費,穩定快速,贊,大力推薦。
4 coding.net:私有庫免費
5 gitlab:國內速度超級慢
繼續深造
1 git官方中文文件
2 廖雪峰老師git教程
3 易百網git教程
enjoy!
悅分享,越快樂^_^
歡迎交流,轉載請註明出處,謝謝!
相關文章
- git的基本使用Git
- git基本使用Git
- Git && Github的基本使用教程Github
- git 基本使用手冊Git
- 初識Git 基本的使用操作Git
- git 部署與基本配置使用Git
- iOS開發之使用Git的基本使用(二)iOSGit
- iOS開發之使用Git的基本使用(一)iOSGit
- git的基本概念及命令使用Git
- [Git] Git整理(四) git rebase 的使用Git
- 使用者使用git常用的基本命令(一)Git
- git的基本命令使用演示視訊Git
- 小米便籤AS部署之Git的基本使用Git
- git的使用Git
- git 的使用Git
- git的使用+Git
- git 基本操作|分支管理|gitlib使用Git
- Mac下git的環境搭建和基本使用MacGit
- Git詳解之一:Git起步Git
- git使用Git
- git 使用Git
- Git rebase 與 Git merge 的使用Git
- MAC上Git安裝與GitHub基本使用MacGithub
- [Tool] Git 使用 與 Git FlowGit
- git rebase的使用Git
- Git的日常使用Git
- Git的使用01Git
- git的使用流程Git
- Git submodule的使用Git
- Git基本Git
- 【git】前端使用git分支的開發流程Git前端
- git的基本操作Git
- Git使用總結(一):簡介與基本操作Git
- Git,Github和Gitlab簡介和基本使用GithubGitlab
- Git 使用技巧Git
- Git/TortoiseGit使用Git
- Git使用感悟Git
- GIT 使用教程Git