我的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會提示接下來的能做的事情

 

參考資料

原文鏈接

http://yanhaijing.com/git/2014/11/01/my-git-note/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM