配置Git
首先在本地創(chuàng)建ssh key锈候;
$ ssh-keygen -t rsa -C "your_email@youremail.com"
后面的your_email@youremail.com
改為你在GitHub上注冊的郵箱薄料,之后會要求確認路徑和輸入密碼,我們這使用默認的一路回車即可泵琳。成功的話會在C:\Users\Leo
下產生.ssh
文件夾摄职,進去誊役,打開id_rsa.pub
,復制里面的key谷市。
回到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验烧。
接下來我們要做的就是把本地倉庫傳到github上去板驳,在此之前還需要設置username
和email
,因為github每次commit
都會記錄他們碍拆。
$ git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"
進入要上傳的倉庫若治,右鍵git bash
,添加遠程地址:
$ git remote add origin git@github.com:yourName/yourRepo.git
后面的yourName
和yourRepo
表示你再github的用戶名和剛才新建的倉庫感混,加完之后進入.git
端幼,打開config
,這里會多出一個remote "origin"
內容弧满,這就是剛才添加的遠程地址婆跑,也可以直接修改config
來配置遠程地址。
創(chuàng)建新文件夾庭呜,打開滑进,然后執(zhí)行 git init
以創(chuàng)建新的 git 倉庫。
檢出倉庫
執(zhí)行如下命令以創(chuàng)建一個本地倉庫的克隆版本:
$ git clone /path/to/repository
如果是遠端服務器上的倉庫募谎,你的命令會是這個樣子:
$ git clone username@host:/path/to/repository
工作流
你的本地倉庫由git維護的三棵“樹”組成扶关。第一個是你的工作目錄
,他持有實際文件数冬;第二個是暫存區(qū)(Index)
节槐,他像個緩存區(qū)域,臨時保存你的改動吉执;最后是HEAD
疯淫,它指向你最后一次提交的結果。
你可以提出更改(吧它們添加到暫存區(qū))戳玫,使用如下命令:
$ git add <filename> #添加單個文件
$ git add * #添加所有文件
這是git基本工作流程的第一步熙掺;使用如下命令以實際提交改動:
$ git commit -m "代碼提交信息"
現在,你的改動已經提交到了HEAD
咕宿,但是還沒到你的遠端倉庫币绩。
推送改動
你的改動現在已經在本地倉庫的HEAD
中了蜡秽。執(zhí)行如下命令已將這些改動提交到遠端倉庫:
git push origin master
可以把master
換成你想要推送的任何分支。
如果你還沒有克隆現有的倉庫缆镣,并欲將你的倉庫連接到某個遠程服務器芽突,你可以使用如下命令添加:
$ git remote add origin <server>
如此你就能夠將你的改動推送到所添加的服務器上去了。
分支
分支是用來將特性開發(fā)絕緣開來的董瞻。在你創(chuàng)建倉庫的時候寞蚌,master
是“默認的”分支。在其它分支上進行開發(fā)钠糊,完成后再將它們合并到主分支上挟秤。
創(chuàng)建一個叫做"feature_x"
的分支,并切換過去:
$ git checkout -b feature_x
切換回主分支:
$ git checkout master
再把新建的分支刪掉:
$ git branch -d feature_x
除非你將分支推送到遠端倉庫抄伍,不然該分支就是 不為他人所見的:
$ git push origin <branch>
更新與合并
要更新你的本地倉庫至最新改動艘刚,執(zhí)行:
$ git pull
以在你的工作目錄中獲取(fetch)
并合并(merge)
遠端的改動截珍。
要合并其他分支到你的當前分支(例如 master)攀甚,執(zhí)行:
$ git merge <branch>
在這兩種情況下,git都會嘗試去合并并改動岗喉。遺憾的是秋度,這可能并非每次都成功,并可能出現沖突(conflicts)
钱床。這時候就需要你修改這些文件來手動合并這些沖突(conflicts)
静陈。改完之后,你需要執(zhí)行如下命令已將它們標記為合并成功:
$ git add <filename>
在合并改動之前诞丽,你可以使用如下命令預覽差異:
$ git diff <source_branch> <target_branch>
標簽
為軟件發(fā)布創(chuàng)建標簽是推薦的。這個概念早已存在拐格,在SVN
中也有僧免。你可以執(zhí)行如下命令創(chuàng)建一個叫做 1.0.0
的標簽:
$ git tag 1.0.0 1b2e1d63ff
1b2e1d63ff
是你想要標記的提交ID的前10位
字符∧笞牵可以使用下列命令獲取提交ID
:
$ git log
你也可以使用少一點的提交ID前幾位懂衩,只要它的指向具有唯一性
。
替換本地改動
假如你操作失誤(當然金踪,這最好永遠不要發(fā)生)浊洞,你可以使用如下命令替換掉本地改動:
$ git checkout -- <filename>
此命令會使用HEAD
中的最新內容替換掉你的工作目錄中的文件。已添加到暫存區(qū)的改動以及新文件都不會受到影響胡岔。
假如你想丟棄你在本地的所有改動與提交法希,可以到服務器上獲取最新的版本歷史,并將你本地主分支指向它:
$ git fetch origin
$ git reset --hard origin/master