我的Git筆記
轉眼間加入git的陣營已經快兩年了,結識git,緣起github,2年前在尋找程式碼託管網站,當時還是用svn,起初使用google code,可是google的服務雖好,在天朝你懂得,後來發現了github,多虧了蔣鑫老師的《GotGitHub》將我帶入github的大門,如果你是個github新手,那我強烈建議你閱讀這篇文章,裡面講了很多東西。
起初的時候我是用github for windows這個客戶端,在切換到多分支的時候被,自動轉換換行符坑的不淺,後來越來閱讀了《git詳解》系列文章,對git的瞭解深入了一步,並開始轉到命令列上來,如今我在github上開源了60幾個庫,藉助git,可自由在這些專案之間穿梭,同時還維護了github家園的微博和Q群(193091696),如果你想獲取關於git和github的最新訊息可以關注微博,如果你有什麼疑問或者問題,歡迎加群一起討論。
這篇文章記錄個人常用的一些命令,和記不住的一些命令。
安裝
在 Windows 上安裝 Git 同樣輕鬆,有個叫做 msysGit 的專案提供了安裝包:
http://msysgit.github.io/
完成安裝之後,就可以使用命令列的 git 工具(已經自帶了 ssh 客戶端)了,另外還有一個圖形介面的 Git 專案管理工具。
配置
首先是配置帳號資訊
git config --global user.name yanhaijing
git config --global user.email yanhaijing@yeah.net
git config --list#檢視配置的資訊
git help config#獲取幫助資訊
配置自動換行(自動轉換坑太大)
git config --global core.autocrlf input #提交到git是自動將換行符轉換為lf
配置金鑰
ssh-keygen -t rsa -C yanhaijing@yeah.net #生成金鑰
ssh -T git@github.com #測試是否成功
新建倉庫
git init#初始化
git status#獲取狀態
git add file#.或*代表全部新增
git commit -m "message"#此處注意亂碼
git remote add origin git@github.com:yanhaijing/test.git#新增源
git push -u origin master#push同事設定預設跟蹤分支
從現有倉庫克隆
git clone git://github.com/yanhaijing/data.js.git
git clone git://github.com/schacon/grit.git mypro#克隆到自定義資料夾
本地
git add *#跟蹤新檔案
rm *&git rm *#移除檔案
git rm -f *#移除檔案
git rm --cached *#取消跟蹤
git mv file_from file_to#重新命名跟蹤檔案
git log#檢視提交記錄
git commit#提交更新
git commit -m 'message'
git commit -a#跳過使用暫存區域,把所有已經跟蹤過的檔案暫存起來一併提交
git commit --amend#修改最後一次提交
git reset HEAD *#取消已經暫存的檔案
git checkout -- file#取消對檔案的修改(從暫存區去除file)
git checkout branch|tag|commit -- file_name#從倉庫取出file覆蓋當前分支
git checkout -- .#從暫存區去除檔案覆蓋工作區
分支
git branch#列出本地分支
git branch -r#列出遠端分支
git branch -a#列出所有分支
git branch -v#檢視各個分支最後一個提交物件的資訊
git branch --merge#檢視已經合併到當前分支的分支
git branch --no-merge#檢視為合併到當前分支的分支
git branch test#新建test分支
git checkout test#切換到test分支
git checkout -b test#新建+切換到test分支
git checkout -b test dev#基於dev新建test分支,並切換
git branch -d test#刪除test分支
git branch -D test#強制刪除test分支
git merge test#將test分支合併到當前分支
git rebase master#將master分之上超前的提交,變基到當前分支
遠端
git fetch originname branchname#拉去遠端上指定分支
git merge originname branchname#合併遠端上指定分支
git push originname branchname#推送到遠端上指定分支
git push originname localbranch:serverbranch#推送到遠端上指定分支
git checkout -b test origin/dev#基於遠端dev新建test分支
git push origin :server#刪除遠端分支
源
git是一個分散式程式碼管理工具,所以可以支援多個倉庫,在git裡,伺服器上的倉庫在本地稱之為remote。
個人開發時,多源用的可能不多,但多源其實非常有用。
git remote add origin1 git@github.com:yanhaijing/data.js.git
git remote#顯示全部源
git remote -v#顯示全部源+詳細資訊
git remote rename origin1 origin2#重新命名
git remote rm origin1#刪除
git remote show origin1#檢視指定源的全部資訊
標籤
當開發到一定階段時,給程式打標籤是非常棒的功能。
git tag#列出現有標籤
git tag v0.1#新建標籤
git tag -a v0.1 -m 'my version 1.4'#新建帶註釋標籤
git checkout tagname#切換到標籤
git push origin v1.5#推送分支到源上
git push origin --tags#一次性推送所有分支
git tag -d v0.1#刪除標籤
git push origin :refs/tags/v0.1#刪除遠端標籤
總結
啊哈!終於總結完了,以後不會的時候,再也不用到處去找了。
其實還有兩個最有用的命令還未提到。
git help *#獲取命令的幫助資訊
git status#獲取當前的狀態,非常有用,因為git會提示接下來的能做的事情
參考資料
原文連結
相關文章
- 我的前端筆記之git篇前端筆記Git
- git的使用筆記Git筆記
- Git submodule 的筆記Git筆記
- GIT筆記Git筆記
- Laravel 我的教程筆記:一些常用命令( git )Laravel筆記Git
- Git的學習筆記Git筆記
- git筆記(三)Git筆記
- git筆記四Git筆記
- Git使用筆記Git筆記
- Git 的特點—— Git 學習筆記 02Git筆記
- 我的Webpack 筆記Web筆記
- 我的線上筆記筆記
- GIT學習筆記一git initGit筆記
- Git筆記-部分命令Git筆記
- 一點git筆記Git筆記
- 【工具】git筆記(二)Git筆記
- git詳細筆記Git筆記
- Git教程筆記 4.21Git筆記
- git學習筆記Git筆記
- Git 筆記 - 程式設計師都要掌握的 GitGit筆記程式設計師
- git checkout 和 git reset 的區別 —— Git 學習筆記 09Git筆記
- Git和Maven的學習筆記GitMaven筆記
- 我的工作筆記(草稿)筆記
- Pro Git 學習筆記Git筆記
- 廖雪峰Git教程筆記Git筆記
- Git常用簡約筆記Git筆記
- Git命令學習筆記Git筆記
- git學習筆記5Git筆記
- git學習筆記6Git筆記
- git學習筆記(一)Git筆記
- git學習筆記(二)Git筆記
- Git—學習筆記1Git筆記
- git學習筆記 1Git筆記
- git學習筆記1Git筆記
- 取得 Git 倉庫 —— Git 學習筆記 04Git筆記
- git rebase(變基)—— Git 學習筆記 19Git筆記
- git常用命令-Git學習筆記Git筆記
- Git 的安裝與初次使用 —— Git 學習筆記 03Git筆記