版本庫:工做區中一個隱藏的".git"文件就是Git的版本庫,版本庫中包含如下重要內容git
#這個命令,會在"~/.gitconfig"文件中添加信息 #--global參數,用了這個參數,表示你這臺機器上全部的Git倉庫都會使用這個配置 git config --global user.name "Your Name" git config --global user.email "email@example.com"
#將當前目錄變成Git能夠管理的倉庫,命令執行後,當前目錄下多了一個.git隱藏文件 git init
git add 文件名
#若是不執行git add,而直接執行git commit,那麼修改內容不會被提交。也就是說git commit只負責把暫存區的修改提交 git commit -m "本次提交的說明" #同時完成git add和git commit兩個操做 git commit -am README.md
git log #省略一些沒必要要信息 git log --pretty=oneline
#1. HEAD指向當前分支master的最後一次提交 #2. HEAD^指向當前分支master的上一次提交 #3. HEAD^^表示上兩個,HEAD~100表示上100個 #4. 注意,若是使用git reset從版本10,退回到版本5,在版本5中使用git log命令,就沒法顯示6-10版本的相關信息,例如commit id git reset --hard HEAD^
#1. 用來記錄你的每一次命令,在這裏能找到以前提交的commit id git reflog #2. 利用commit id前進到指定版本,最後一個參數爲commit id,是一個哈希值,寫4位以上便可 git reset --hard 1094a
git diff #比較工做區與當前版本(已commit中內容)區別 git diff HEAD #比較工做區與當前版本中指定文件區別 git diff HEAD -- 文件名
9.撤銷工做區的修改github
#若是不加"--"",就變成了"切換到另外一個分支"的命令 git checkout -- readme.txt
10.撤銷暫存區的內容服務器
#注意這是將git add操做撤銷,而上面是撤銷工做區的修改,其實本質上就是恢復到了指定的版本 git reset HEAD readme.txt
11.從版本庫中刪除文件ssh
#1. 先在工做區刪除,若是此步驟爲誤刪,可使用上面介紹的git checkout -- readme.txt恢復工做區內容 rm test.txt #2. 在暫存區中提交刪除 git rm test.txt #3. 提交到版本庫 git commit -m "remove test.txt"
12.查工做目錄和暫存區的狀態,和git log區別在於,後者用於查看commit的信息,前者用於查看當前目錄與最新版本的區別,以及暫存區與最新版本的區別分佈式
git status
1.使用https url和SSH url均可以將遠程項目克隆到本地svn
2.使用ssh克隆時,你必須是你要克隆的項目的擁有者或管理員,且須要先添加 SSH key ,不然沒法克隆fetch
3.能夠先使用本身電腦建立SSH key公鑰和私鑰,而後將公鑰告訴給github,這樣,就能夠在本身的電腦上,經過ssh協議,使用私鑰來訪問github的服務器了url
4.設置流程
1.本機建立建立一個 SSH keyspa
#-t 指定密鑰類型,默認是 rsa ,能夠省略。 #-C 設置註釋文字,好比郵箱。 #-f 指定密鑰文件存儲文件名,默認文件名爲id_rsa(私有密鑰)和id_rsa.pub(公開密鑰) ssh-keygen -t rsa -C "your_email@example.com" #Generating public/private rsa key pair. #Enter file in which to save the key #(/Users/your_user_directory/.ssh/id_rsa): #按回車鍵 #Enter passphrase (empty for no passphrase): #輸入push文件的時候要輸入的密碼,能夠不輸密碼直接回車 #Enter same passphrase again: #再次輸入密碼
2.github上添加公開密鑰,從此就能夠用私有密鑰進行認證了,在SSH Keys中粘貼 id_rsa.pub 文件裏的內容版本控制
cat ~/.ssh/id_rsa.pub
cd ~/.ssh #修改私鑰,執行命令後提示輸入密碼,兩次都直接回車就能夠去掉密碼,去掉密碼後,git push就再也不須要輸入密碼 ssh-keygen -p -f id_rsa
#此處也可使用https協議克隆 #克隆後,Git會自動把本地的master分支和遠程的master分支對應起來了,遠程倉庫的默認名稱是origin git clone git@github.com:michaelliao/gitskills.git #查看遠程庫信息 git remote #查看遠程庫詳細信息,若是沒有推送權限,就看不到push的地址 #origin git@github.com:michaelliao/learngit.git (fetch) #origin git@github.com:michaelliao/learngit.git (push) git remote -v #刪除遠程庫 git remote rm origin
#1. 建立本地庫 #2. 在github上建立倉庫 #3. 爲本地庫關聯遠程庫 #1. 注意michaelliao必須是本身的倉庫,若是是別人的,雖然能加上,但push不上去,由於你的SSH Key公鑰不在他人的帳戶列表中 #2. 添加後,origin爲遠程倉庫別名,這是Git默認的叫法,也能夠改爲別的 git remote add origin git@github.com:michaelliao/learngit.git
#1. 將本地庫中當前分支推送到遠程的master分支上 git push origin master #2. 拉取 git pull origin master