對git的問題:javascript
1.怎樣在master與其它分支之間切換java
2.怎樣查看當前分支git
3.怎樣合併分支到master主分支github
4.怎樣刪除分支,何時能夠刪除分支,這樣作的意義在什麼地方安全
5.怎樣將本地庫上傳到githubruby
6.怎樣將github上的內容,clone到本地服務器
加入有個learn文件夾。要從github中clone資源,那麼須要先進入到learn文件夾下,才能克隆到這個文件夾下,否則就會到別的文件夾。ssh
可是當操做某個資源文件時,須要先進入該資源所在文件夾下,而不是上一級。ui
mkdir 建立知識庫spa
git init; 初始化知識庫,創建.git文件
在知識庫中添加本身須要不斷變動的文本文件
git add yourfilename
git commit -m "描述你對該版本作出的更改"
git status 查看當前文本的狀態
git diff yourfilename 查看更改的地方
---------------------------------------------------------------------
git log 查看版本的歷史記錄
git log --pretty=oneline 以縮略的形式顯示文本更改的狀況
git reset --hard HEAD^ 回退到上個版本 ~ 符號指明回退到第幾個版本
----------------------------------------------------------------
回到上個版本會把最新版本的刪去,就是在git log下找不信息。
這時能夠經過。
git reflog 查看commit id.而後找回。
-----------------------------------------------------------------------------------------
廖雪峯的總結:
場景一、當你改亂了工做區某個文件的內容,想直接丟棄工做區的修改時,用命令git checkout -- file
。
場景2:當你不但改亂了工做區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD file
,就回到了場景1,第二步按場景1操做。
場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考版本回退一節,不過前提是沒有推送到遠程庫
-----------------------------------------------------------------------------------------------------------------
ssh-keygen -t rsa -C "821658917@qq.com" 建立私人密鑰
推送到github上:git remote add origin git@github.com:AaronCos/learngit.git
----------------------------------------------------------------------------------------------------------------
1.將本地的推送到遠程的github服務器
使用命令git remote add origin git@server-name:path/repo-name.git
;
關聯後,使用命令git push -u origin master
第一次推送master分支的全部內容;
此後,每次本地提交後,只要有必要,就可使用命令git push origin master
推送最新修改
2.將遠程的github服務器上的內容克隆到本地。
git clone git@github.com:AaronCos/gitskills.git 其中gitskills.git是知識庫,git後綴須要本身添加
3.
----------------------------------------------------------------------------------------------------------------------------------
分支管理
在版本回退裏,你已經知道,每次提交,Git都把它們串成一條時間線,這條時間線就是一個分支。截止到目前,只有一條時間線,在Git裏,這個分支叫主分支,即master
分支。HEAD
嚴格來講不是指向提交,而是指向master
,master
纔是指向提交的,因此,HEAD
指向的就是當前分支。
一開始的時候,master
分支是一條線,Git用master
指向最新的提交,再用HEAD
指向master
,就能肯定當前分支,以及當前分支的提交點:
每次提交,master
分支都會向前移動一步,這樣,隨着你不斷提交,master
分支的線也愈來愈長:
當咱們建立新的分支,例如dev
時,Git新建了一個指針叫dev
,指向master
相同的提交,再把HEAD
指向dev
,就表示當前分支在dev
上:
你看,Git建立一個分支很快,由於除了增長一個dev
指針,改改HEAD
的指向,工做區的文件都沒有任何變化!
不過,從如今開始,對工做區的修改和提交就是針對dev
分支了,好比新提交一次後,dev
指針往前移動一步,而master
指針不變:
假如咱們在dev
上的工做完成了,就能夠把dev
合併到master
上。Git怎麼合併呢?最簡單的方法,就是直接把master
指向dev
的當前提交,就完成了合併:
因此Git合併分支也很快!就改改指針,工做區內容也不變!
合併完分支後,甚至能夠刪除dev
分支。刪除dev
分支就是把dev
指針給刪掉,刪掉後,咱們就剩下了一條master
分支:
真是太神奇了,你看得出來有些提交是經過分支完成的嗎?
下面開始實戰。
首先,咱們建立dev
分支,而後切換到dev
分支:
$ git checkout -b dev Switched to a new branch 'dev'
git checkout
命令加上-b
參數表示建立並切換,至關於如下兩條命令:
$ git branch dev $ git checkout dev Switched to branch 'dev'
而後,用git branch
命令查看當前分支:
$ git branch * dev master
git branch
命令會列出全部分支,當前分支前面會標一個*
號。
而後,咱們就能夠在dev
分支上正常提交,好比對readme.txt作個修改,加上一行:
Creating a new branch is quick.
而後提交:
$ git add readme.txt $ git commit -m "branch test" [dev fec145a] branch test 1 file changed, 1 insertion(+)
如今,dev
分支的工做完成,咱們就能夠切換回master
分支:
$ git checkout master Switched to branch 'master'
切換回master
分支後,再查看一個readme.txt文件,剛纔添加的內容不見了!由於那個提交是在dev
分支上,而master
分支此刻的提交點並無變:
如今,咱們把dev
分支的工做成果合併到master
分支上:
$ git merge dev Updating d17efd8..fec145a Fast-forward readme.txt | 1 + 1 file changed, 1 insertion(+)
git merge
命令用於合併指定分支到當前分支。合併後,再查看readme.txt的內容,就能夠看到,和dev
分支的最新提交是徹底同樣的。
注意到上面的Fast-forward
信息,Git告訴咱們,此次合併是「快進模式」,也就是直接把master
指向dev
的當前提交,因此合併速度很是快。
固然,也不是每次合併都能Fast-forward
,咱們後面會講其餘方式的合併。
合併完成後,就能夠放心地刪除dev
分支了:
$ git branch -d dev Deleted branch dev (was fec145a).
刪除後,查看branch
,就只剩下master
分支了:
$ git branch * master
由於建立、合併和刪除分支很是快,因此Git鼓勵你使用分支完成某個任務,合併後再刪掉分支,這和直接在master
分支上工做效果是同樣的,但過程更安全。
Git鼓勵大量使用分支:
查看分支:git branch
建立分支:git branch <name>
切換分支:git checkout <name>
建立+切換分支:git checkout -b <name>
合併某分支到當前分支:git merge <name>
刪除分支:git branch -d <name>
--------------------------------------------------------------------------------------------------------------------------------