從頭開始複習git,熟悉git常見指令,安裝,操做等node
參考廖雪峯的教程git
廖雪峯git教程
有兩種方法github
brew官網brew使用教程app
Xcode7.0後的版本默認安裝了git,在終端直接輸入git,看是否已安裝。
git官網
git init
建立倉庫ssh
git add file
添加到git中(放入暫存區)ui
git add .
一次性所有添加到暫存區this
git commit -m 'commit description'
提交修改好的文件到本地加密
git log
打印提交日誌.net
git log —oneline
打印提交日誌的簡寫版日誌
git diff --name-only HEAD~1
查看最近一次提交修改的文件
git reset —hard HEAD^
回滾到上一個版本(HEAD表明當前版本,HEAD^表明上一個版本,HEAD^^表明上兩個版本,依次類推)
git reflog
查看用戶全部的提交記錄
git reset —hard 1231234(提交id
)回滾到1231234的提交版本
git checkout — file.txt
放棄工做區中對file文件的修改,不論暫存區是否有該文件的修改記錄,即該命令不會放棄暫存區的修改,只放棄工做區的修改
git reset HEAD file.txt
放棄暫存區的內容(即放棄上一次add的內容),退回到工做區,此時的工做區並非最新版本,而是在最新版本的基礎上用戶修改過的內容
已github爲例,假設有兩種狀況:
1.本地已有git倉庫或項目文件,想在github進行關聯
Initialize this repository with a README
,默認建立便可git remote add origin git@github.com:dwfrost/GitStudy.git
,注意origin後的內容(SSH)能夠從github上覆制git push -u origin master
2.本地是空文件,想從已有的github項目克隆
git clone git@github.com:dwfrost/GitStudy.git
git remote rm origin
刪除已關聯的遠程倉庫(通常用不到)
git remote
查看關聯的遠程倉庫
一個本地庫能夠同時關聯github和碼雲:
git remote add github git@github.com:dwfrost/GitStudy.git
git remote add gitee git@gitee.com:dwfrost/GitStudy.git
注意,遠程倉庫名稱不是origin
了
而後分別推送
git push github dev
git push gitee dev
git branch
查看當前所在的分支
git branch dev
建立dev分支
git checkout dev
切到dev分支
git checkout -b dev
建立並切換到dev分支
git merge dev
將dev分支合併到當前分支
git branch -d dev
刪除dev分支(合併後才能刪除,且當前分支不能爲dev)
git branch -D dev
沒有合併時,強制刪除dev分支
git stash
將修改內容(stash)移到貯藏區git stash pop
還原並刪除最新的暫存
git stash list
查看貯藏區的內容(stash)
恢復貯藏區有2種辦法:
1.git stash apply
恢復貯藏區,但貯藏區依舊保留修改內容(stash),若是想刪除,使用git stash drop
2.git stash pop
恢復貯藏區的同時刪除修改內容(stash)
git push origin dev
將dev分支推送到遠程倉庫(origin)的dev分支上
git tag v1.0
新建標籤
git tag
查看標籤
git show v1.0
查看標籤信息
git tag v0.9 7ff4f56
給某次提交打上標籤
git tag -a v0.9 -m "version 0.9 released" 7ff4f56
-a
後面是標籤名,-m
後面是標籤說明
git tag -d v1.0
刪除標籤
git push origin v1.0
推送標籤到遠程
git push origin --tags
一次性推送所有標籤
git push origin :refs/tags/v1.0
刪除遠程標籤(要先刪本地)
常見的遠程倉庫有github,碼雲等,爲了方便本地和遠程提交代碼,須要配置SSH加密,以下:
1.建立SSH key。
建立前,看一下有沒有。在用戶目錄下(mac),終端輸入ls -ah
查看隱藏文件,發現存在.ssh
文件夾,cd .ssh
->open .
,看到存在id_rsa
和id_rsa.pub
兩個文件,說明已經有了SSH key。
若是沒有,就須要建立。
$ ssh-keygen -t rsa -C "youremail@example.com"
一路回車,建立成功。
2.添加公鑰
id_rsa
:密鑰是用戶保管的
id_rsa.pub
:公鑰是放在遠程倉庫,用於和密鑰配對使用。
複製id_rsa.pub
文件中的內容,打開github,在帳戶管理選項中添加SSH key。
工做區就是git可以管理到的工做區域,也就是該倉庫下的全部文件,包括正在修改的和已經存在的文件。
暫存區是git記錄的修改狀態,用戶在工做區修改文件後,能夠用git add file
將文件修改放入暫存區。
注意,若是用戶沒有把修改操做放入暫存區,而後直接提交,那git是不會提交用戶的操做的,git只提交暫存區中的修改操做。因此在開發過程當中,咱們一般以下操做:
* 寫代碼,寫代碼…… * 一個小功能或模塊完成,直接提交 * 若是代碼很少,先放入暫存區,而後接着寫代碼 * 以爲ok了,放入暫存區,不ok千萬別放 * 全部的改動一次性提交
另外,若是暫存區
存在文件,是不能直接pull
的。若是工做區
存在修改文件,能夠pull
代碼。
有些文件的變更或者信息是不須要提交的,好比node_modules
、dist
以及系統產生的垃圾文件等。示例以下:
# Windows: Thumbs.db ehthumbs.db Desktop.ini # Python: *.py[cod] *.so *.egg *.egg-info dist build # My configurations: db.ini deploy_key_rsa
git config --global credential.helper store
在用戶主目錄下.gitconfig文件生成下面的配置
[credential] helper = store
之後就不用每次都輸入帳號密碼了
git config --global alias.st status
全局配置,用st
代替status
去掉--global
,那配置別名的文件存在於本倉庫的.git/config
中。
全局配置的文件在用戶主目錄下的隱藏文件.gitconfig
中。
若是想刪除別名,直接刪除[alias]下對應的行便可。
git rm file
至關於 rm file
,而後git add file
git commit -m 'delete file'
git reset HEAD file
+ git checkout -- file
git remote -v
;git push origin branch-name
,若是推送失敗,先用git pull
抓取遠程的新提交;git checkout -b branch-name origin/branch-name
,本地和遠程分支的名稱最好一致;git branch --set-upstream branch-name origin/branch-name
;若是使用sourcetree,右鍵origin,選擇檢出分支,便可在本地複製遠程分支。git pull
,若是有衝突,要先處理衝突。每次代碼的提交是有意義的,常見的提交標記以下: