平常用gitlab比較習慣,因為project可以設定private(免費),不過github還是比較多人使用,所以剛好就來學學github怎麼用。
在安裝之前要確定已經安裝Command Line Tools和簽署Xcode的license(Xcode 6.1以下還要安裝Command Line Tools),詳細在這
安裝Xcode後安裝Command Line Tools
安裝Xcode後簽署license
只要安裝好Command Line Tools就有git指令可以用了
github
首先先到github官網申請一個帳號,Username和Email很重要別亂打,如果要github和gitlab共存的話,Username不要使用特殊符號包含空白鍵
建立後登入,左上方先建立一個「repository」(Project),這個名字就是專案名稱,別人也會靠這個名字搜尋
Repository name: 專案名稱
Description: 專案的描述(optional)
Public: 公開專案,Private: 私有專案(要錢)
Initialize this repository with a README: 自動產生README文件(也可以之後手動)
還蠻方便的是也可以自動產生ignore檔案和license
建立好之後就長這樣~
接下來就是指令的事了,先設定好git的config,以下指令做一次就OK了
git config --global user.name "你的Username" git config --global user.email "你的Email"
所以我要用的指令為
git config --global user.name "QbsuranAlang" git config --global user.email "jr89197@hotmail.com"
接著就可以產生sshkey,首先先切換目錄到~/.ssh
cd ~/.ssh
首先先檢查有沒有這些檔案,如果有的話備份起來或是看要移除還是怎樣
id_dsa.pub id_ecdsa.pub id_ed25519.pub id_rsa.pub
接著要讓在本地端的電腦能夠透過git上傳專案(當然其他文件也可以),要產生sshkey,以下指令產生sshkey
ssh-keygen -t rsa -C "你的Email"
ssh-keygen -t rsa -C "jr89197@hotmail.com" Generating public/private rsa key pair. Enter file in which to save the key (/Users/QbsuranAlang/.ssh/id_rsa): (直接return) Enter passphrase (empty for no passphrase): (直接return) Enter same passphrase again: (直接return)
這樣在~/.ssh就會產生id_rsa和id_rsa.pub,id_rsa.pub就是公開的sshkey,用以下指令複製到剪貼簿
cat ~/.ssh/id_rsa.pub | pbcopy
接著到github網站上,切換到「Settings」頁面->左邊「SSH Keys」->右邊「Add SSH key」
將剪貼簿內的內容複製上去到Key,Title取個能夠識別的字就好了
這樣就新增好ssh key了,要測試ssh key能不能正常使用,以下指令
ssh -T git@github.com
如果第一次使用的話應該會出現,打yes就好了
The authenticity of host 'github.com (192.30.252.130)' can't be established. RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx8. Are you sure you want to continue connecting (yes/no)? yes (打yes) Warning: Permanently added 'github.com,192.30.252.130' (RSA) to the list of known hosts.
出現這個表示成功
Hi QbsuranAlang! You've successfully authenticated, but GitHub does not provide shell access.
接著,要把剛剛新增好的Repository移動到本地端,直接複製
git clone git@github.com:你的Username/Repository名字.git git clone git@github.com:QbsuranAlang/Test.git或是
git clone 網址 git clone https://github.com/QbsuranAlang/Test
接著基本操作呢
新增檔案
git add filename git add .
寫commit
git commit -m 'your commit'
在push前如果需要修改commit
git commit --amend
push上去
git push -u origin master
刪除檔案
git rm filename (這樣做只是移除掉在git組態檔中上傳的檔案並未真正刪除檔案) rm filename (真正刪除檔案)
這邊要注意的是,如果在呼叫git rm之前就先刪除掉檔案的話,使用git add會發生問題以下問題
warning: You ran 'git add' with neither '-A (--all)' or '--ignore-removal', whose behaviour will change in Git 2.0 with respect to paths you removed. Paths like 'a.php' that are removed from your working tree are ignored with this version of Git. * 'git add --ignore-removal', which is the current default, ignores paths you removed from your working tree. * 'git add --all ' will let you also record the removals. Run 'git status' to check the paths you removed from your working tree.
所以他就說了以下指令解決
git add --all .
如果要忽略掉不要上傳的檔案就寫.gitignore檔案,建立.gitignore檔案
vim .gitignore
例如在Mac OSX中最討人厭的檔案「.DS_Store」,就直接寫.DS_Store上去,接著如果需要忽略.o的檔案就寫*.o,所以這個時候.gitignore檔案應該長這樣
.DS_Store *.o
每次要做更新之前固定步驟:add->commit->push
例如這次新增ignore檔案後應該要這樣做
test [master●●] % git add . (直接新增當下目錄最快) test [master●] % git commit -m 'add ignore' [master cce39ca] add ignore 2 files changed, 2 insertions(+) create mode 100644 .gitignore delete mode 100644 a.php test [master] % git push -u origin master Counting objects: 4, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 323 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To git@github.com:QbsuranAlang/Test.git dc8fcce..cce39ca master -> master Branch master set up to track remote branch master from origin.
gitlab
gitlab用法跟github差不多,只是他的private專案免費
一樣申請帳號,如果要跟github共存的話,Username和Email請跟github相同(申請後可以再修改Username)
git config --global user.name "你的Username" git config --global user.email "你的Email"
產生ssh key就看上面吧,放ssh key的地方在右上角「Profile Settings」->左邊「SSH Keys」->右邊「Add SSH Key」
一樣要測試能不能正常使用,以下指令注意是gitlab不是github
ssh -T git@gitlab.com
OK後就來建立專案了,右上角「New project」
就依需求建立吧
建立專案後會出現這個,只要做中間的「Create a new repository」
mkdir Test cd Test git init touch README.md git add README.md git commit -m "first commit" git remote add origin git@gitlab.com:Qbsuran_Alang/Test.git git push -u origin master
指令做完後reload網頁就OK囉
參考
Git 教學(1) : Git 的基本使用: 'http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/' Git 教學研究站: 'http://dylandy.github.io/Easy-Git-Tutorial/index.html'
請問如果同一個專案,想要push 到gitlab 和github ,是不是local 的目錄要做區分,還是同一個目錄就可以呢?
回覆刪除謝謝!