今天使用Git&github&ST3時,發現ST3不僅是git插件不能push成功,使用sublimegit插件也不行。
可能是沒有掌握sublimegit的使用技巧,有待后續繼續摸索。
暫時只考慮使用ST3在本地更新項目,直接使用git的bash.exe完成push到github。
***************************************************************************************************************************************************
1.首先git和github不是同一個東西。Git是一款免費、開源的分布式版本控制系統,而github是基於git的代碼托管平台且同時也具有版本記憶功能。
2.git是分布式版本管理系統。
3.git是由linux的創造者linus開發的。
4.不同於CVS和SVN的集中式版本控制方式,git使用分布式進行版本控制。將較而言,git分布式版本控制可以實現本地化的版本庫,工作時不必聯網;git具有強大的分支管理能力,穩定性更高。(便捷)
***************************************************************************************************************************************************
git首次安裝后的設置:
首先打開hash.exe輸入用戶名和郵箱
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
利用git本地倉庫進行版本控制可以簡單的理解為:a 持有實際文件的物理工作目錄,b 暫存區,c 本地倉庫(git在本地默認建立的一個master分支)
其中a-->b是由add實現,而b-->c是由commit實現。
利用git在本地進行版本庫存儲:
(打開D:/Git/bin/bash.exe)
1.git在本地指定地點建立倉庫(或者是指向克隆下來的倉庫):
cd e:/github_projects/tisikcci.github.io
2.初始化一個git倉庫:
git init
初始化之后,會在tisikcci.github.io文件夾下生成一個默認隱藏的.git文件夾
3.向這個隱藏的文件夾中添加文件:README.md(可以是別的文件,要將這個文件放在.git同級文件夾下):
git add README.md
也可以一次添加多個文件,類似於:
git add README1.md README2.md README3.md
4.將文件存入本地倉庫(當前分支),同時添加改動或者說是更新說明:(這里的‘first commit’應該是與本次提交或者更新有關系有實際意義的說明,方便以后溯源)
git commit - m'first commit'
5.在上面的3,4步驟過程后可以使用以下命令看到內容的變動
git status
6.可以使用以下代碼查看git版本庫的修改或者說是更新次數(使用q可以退出這個命令)
git log
如果覺得這樣得到的信息太多,可以使用下面的命令,使得每次修改信息漂亮的顯示在同一行
git log --pretty=oneline
也可以選定查看最近2次的版本更新信息:
git log -n 2
7.可以利用reset實現版本回退:
git reset --hard head^
注意:HEAD表示當前版本(就是一個指針),在后面加一個^,表示(指向)上一個版本,前第N個版本是HEAD~N,
回退以后想恢復之前最新的版本或者是某次特定的版本,可以利用如下代碼查找操作代碼庫的關鍵步驟歷史記錄的ID實現:
git reflog
根據ID,比如是441736f,前進到回退前的某個版本
git reset --hard 441736f
8.commit之后又對項目中的某個文件內容進行了更新,可以利用以下命令回到離commit最近的狀態(就是丟棄掉沒有進行add操作的更改內容,回到上次commit操作時的狀態)
git checkout -- 文件名
這里本質是利用本地版本庫中的相同文件替換了本地文件夾中的文件,所以看起來是回到之前commit操作時的狀態了(但是如果更改已經add了,除非放棄add操作內容,否則下次commit又會更新本地倉庫)
更進一步,撤銷已經add到暫存區但沒有commit到本地分支的文件
it reset head 文件名
以上過程中可以使用以下命令查看具體文件的內容
cat 文件名
9.刪除本地版本庫中的文件
首先說一下一種特殊情況:本地的文件夾中的項目相關文件被刪除了,但沒有更新本地的版本庫,如果這時想恢復被刪除的項目相關文件,可以利用以下命令:
git checkout -- 文件名
第二種情況是真的想刪除本地倉庫中的相關文件,利用以下代碼刪除本地文件夾中的文件(也可以手動刪除)
rm 文件名
然后利用以下代碼刪除本地倉庫中的文件
git rm 文件名
並且利用git commit進行保存
git commit -m"remove 文件名"
10.新建一個分支,可以利用
git branch 分支名 git checkout 分支名
上面的代碼分別表示新建一個分支,並將head(指針)指向新建的指針
也可以使用下面的方式直接實現新建一個分支並使head指向它
git checkout -b 分支名
可以利用下面的命令分別查看本地分支,遠程分支和所有分支,當前指向分支前會加*號
git branch
git branch -r
git branch -a
刪除已經存在的指定本地分支,遠程分支(注意要先將指針指向其他分支才能刪除此分支)
git branch -d 分支名 git push origin :分支名
重命名分支
git branch -m 原分支名 新分支名
11.在新分支上提交內容,對之前的主分支master並不會有影響,可以利用如下方式再切換回主分支
git checkout master
此時head會重新指向master,將master替換為別的分支,可以實現切換到任意指定分支
12.將新建立的分支合並到主分支(首先要切換回主分支)
git merge 新分支
合並后,就可以利用上面給出的方法刪除新分支
14.如果想保留新建的分支,並推送到遠程倉庫,可以利用
git push origin 新建的分支
15.可以給項目進度添加版本號,通過添加標簽的方式實現
git tag 版本號
通過省略版本號可以直接查看已經添加的版本號
git tag
可以給以前的某次提交補加版本號,只要查找到之前commit操作對應的ID,比如:441736f
git tag 版本號 441736f
可以利用如下的方式實現在添加標簽時添加說明
git tag -a 版本號 -m "版本說明"
可以通過以下命令查看指定版本內容
git show 版本號
刪除不想要的標簽
git tag -d 已經存在的標簽(版本號)
可以將本地標簽推送到遠程倉庫
git push 遠程主機名(比如origin) 版本號
比如:
git push origin v1.0
將本地所有的版本號都推送到遠程倉庫
git push origin --tags
如果想刪除遠程倉庫的版本號,需要進行兩步
a. 首先要刪除本地版本號(標簽)
b.再刪除遠程版本號
git push origin :refs/tags/版本號
*******************************************************************************************************************************
利用以上步驟,基本可以實現利用git本地進行操作,以下要實現將本地git倉庫同步到遠程倉庫(例如github,當然也可以自己在一台PC上搭建一個服務器,作為遠程倉庫)
利用github充當遠程倉庫是一種很不錯的方式,git本地倉庫和github可以通過SSH加密,利用多種方式進行數據傳輸:HTTP(s)、SSH、Git、本地協議等,前兩種比較常用。
*******************************************************************************************************************************
1.要想將本地倉庫同步到Github上,首先需要建立本地和Github上使用的SSH私鑰和公鑰,在git的bash.exe中輸入
ssh-keygen -t rsa -C “tisikcci@foxmail.com”
2.在電腦上生成公鑰和私鑰,將公鑰上傳到github上
3.測試是否連接成功
ssh -T git@github.com
4.在Github上建立一個你想和本地倉庫進行同名的倉庫(名字相同)
5.利用上面的cd...指向本地倉庫的位置,然后關聯到Github的遠程倉庫:
git remote add origin git@github.com:tisikcci/tisikcci.github.com.git
6.關聯好之后,可以把本地倉庫中的內容推送到Github上的遠程倉庫了
在首次進行推送的時候,需要:
git push -u origin master
此處加 -u 是用來將本地master和遠程master進行關聯的,以后再次推送就不需要再加了,origin是遠程主機的名字,可以通過以下代碼來查看
git remote
或者是
git remote -v
這個主機名字是可以人為指定的。
首次推送之后,下次再向遠程倉庫master分支推送項目時,只需要
git push origin master
7.上面提到可以人為指定遠程主機的名字,在將遠程倉庫克隆到本地的時候,可以實現
git clone -o 新主機名 https://github.com/tisikcci/first-static-web-page.git/
如果使用默認的主機名並且克隆到本地指定的位置,可以利用
git clone https://github.com/tisikcci/first-static-web-page.git/ 本地地址
最好是直接利用SSH協議進行clone,如下
git clone 倉庫的SSH地址 本地建立的空文件夾地址 git clone git@github.com:tisikcci/test.git e:/github_projects/zz
就將遠程倉庫的test克隆到了本地的zz文件夾中。
****************************************************************************************************************
參考鏈接:
http://www.yiibai.com/git/
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000