本人比較懶,不是很愛學習新東西,之前用Git一直在用GUI SourceTree,今天因為用到Cloud IDE+GitHub才迫不得已用一下Git的命令行,如果你是Git的新手,也分享給你最基本的命令。
新建一個Git版本庫
把一個本地文件夾變成一個Git版本庫:
$ git init
更新遠端最新文件
在提交修改之前,應先檢查是否遠端有更新,先要應用更新,然后再執行本地修改,避免文件合并等復雜操作。
$ git push origin master
查看變更
查看(從上一次變更提交后)都有哪些文件改動,使用以下命令:
$ git status
確認變更
簡單來說,就是在提交一次變更之前,需要確認哪些文件需要提交進去,一般來說我們都是提交所有修改了的文件到這次變更,那么就用以下命令:
$ git add .
如果你想取消確認某個文件,可以用以下命令:
$ git reset HEAD 你的文件
提交變更
提交上一個步驟已經確認過的文件,-m
后面填上本次變更的備注:
$ git commit -m '本地變更的備注內容'
也可以把add
放到commit
里面一起操作,如下:
$ git commit -a -m '本地變更的備注內容'
設置遠端庫
本地提交完成后,還需要推送到遠端,第一次提交到遠端時,需要設置遠端庫的路徑,使用以下命令:
$ git remote add origin 你的遠端庫URL $ git remote -v
如果是GitHub的話,可以從GitHub的Quick Setup頁面找到URL。

設置遠端的這個步驟只需要執行一次,設置成功后你的遠端代號就叫origin
。
推送到遠端
本地提交完成后,用此命令推送到遠端:
$ git push origin master
master
是你要推送的分支。
你可以用下面的命令讓git記住你的用戶名密碼信息:
$ git config credential.helper store
還可以設置緩存時間(記住多久,單位秒,默認值900):
$ git config credential.helper cache <緩存時間>
推送到我的私有Git遠端時,我遇到報錯:
error: refusing to update checked out branch: refs/heads/master
error: By default, updating the current branch in a non-bare repository
error: is denied, because it will make the index and work tree inconsistent
error: with what you pushed, and will require 'git reset --hard' to match
error: the work tree to HEAD.
error:
error: You can set 'receive.denyCurrentBranch' configuration variable to
error: 'ignore' or 'warn' in the remote repository to allow pushing into
error: its current branch; however, this is not recommended unless you
error: arranged to update its work tree to match what you pushed in some
error: other way.
error:
error: To squelch this message and still keep the default behaviour, set
error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
原因是因為遠端庫不是裸庫,用下面的方法把已有的git庫轉換成裸庫。(我之前遠端用的是git init
,并非創建的裸庫)
$ git config --bool core.bare true
分支的操作
要在當前分支的基礎上新建一個分支branch1
并切換到該分支,可以使用以下命令:
$ git checkout -b branch1
單獨切換分支,則不加-b
參數,例如要切換回master
分支,則:
$ git checkout master
若要將分支master
合并到branch1
,也就是說合并后master
和branch1
是一樣的,則用以下命令:
$ git checkout master $ git merge branch1
如果合并遇到沖突,則可以通過git status
來檢查沖突點。
要刪除分支branch1
,則用以下命令:
$ git branch -d branch1