GIT基本操作

創建本地倉庫

使用git bash進入需要創建倉庫的目錄下:

cd xxxx

git init? 創建本地倉庫

此時目錄中會多了一個 .git目錄,如果沒有可能是隱藏的,可以ls -ah查看

添加文件到倉庫

創建一個readme.txt:mkdir xxx(創建目錄)? vi xxx(創建文件)

vi readme.txt 然后進行編輯,編輯后先按一下ESC退出編輯,然后輸入:wq退出并保存編輯的內容,:q僅僅是退出不會保存

git add xxx(如 readme.txt)一次可添加多個文件,多個文件間用空格隔開,實際的作用是將文件添加到暫存區

這里如果是window 可能會出現警告,但并不影響后面的使用。waring:LF will be replaced by CRLF in gitTest/readme.txt.the file will have its original line endings in your working directory

windows中的換行符為 CRLF(如編輯時文件中使用回車鍵來換行), 而在Linux下的換行符為LF,所以在執行add . 時出現提示,解決辦法:

$ rm -rf .git? // 刪除.git?????????????????????????????????????????????????????????????????????? $ git config --global core.autocrlf false? //禁用自動轉換

$ git init? // 重新建立
$ git add . // 重新添加

git commit -m "xxx"將文件提交到倉庫,并附上說明信息,實際的作用是將暫存區的文件提交到當前分支

git status命令可以查看當前倉庫的狀態(一般都是只文件的狀態,如修改了文件后沒有提交,或新增了很多文件沒有提交)

git diff 查看文件修改的狀況(所有文件)?? git diff xxx(查看指定文件)

git log查看提交記錄,可以通過記錄的commit id來做版本回退

git reset --hard xxx(一般id的前6~8位就可以了)

git reflog當git log查不到對應的版本時,可以使用這個來查看,這個是查看所有提交的記錄,git log 有時在git reset后就看不到reset之前的那個版本了

git checkout -- file命令中的 -- 很重要,沒有--,就變成了“切換到另一個分支”的命令,我們在后面的分支管理中會再次遇到git checkout命令。這個命令是讓這個文件回到最近一次git commit或git add時的狀態

git reset HEAD file可以把暫存區的修改撤銷掉(unstage),重新放回工作區。就是你修改了文件并且已通過git add添加到了暫存區,但還沒有commit就可以用 git reset HEAD readme.txt來恢復readme.txt這個文件添加到暫存區之前的狀態,并將暫存區清空。

上傳至遠程倉庫

關聯遠程倉庫 $ git remote add origin git@github.com:yourName/projectName.git

將本地倉庫推送到遠程庫上 :git push -u origin master實際上是把當前分支master推送到遠程。由于遠程庫是空的,我們第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以后的推送或者拉取時就可以簡化命令。推送成功后,可以立刻在GitHub頁面中看到遠程庫的內容已經和本地一模一樣。以后就可以直接git push origin master推送的遠程庫

git 分支的應用

git branch dev 創建名為dev的分支

git checkout dev 切換到名為dev的分支上

git checkout -b dev 創建并切換到名為dev的分支,相當與上面兩句

git branch 查看所有分支,當前分支前面會標一個 * 號

git merge dev 將dev提交的合并到當前分支

git branch -d dev 刪除名為dev的分支(切記如果在此分支上做過修改和增加一定要在合并后才刪)

多人協作

當你從遠程倉庫克隆時,實際上Git自動把本地的master分支和遠程的master分支對應起來了,并且,遠程倉庫的默認名稱是origin。

要查看遠程庫的信息,用git remote:

$git remoteorigin

或者,用git remote -v顯示更詳細的信息:

$git remote -vorigin? git@github.com:michaelliao/learngit.git (fetch)origin? git@github.com:michaelliao/learngit.git (push)

上面顯示了可以抓取和推送的origin的地址。如果沒有推送權限,就看不到push的地址。

推送分支

推送分支,就是把該分支上的所有本地提交推送到遠程庫。推送時,要指定本地分支,這樣,Git就會把該分支推送到遠程庫對應的遠程分支上:

$git push origin master

如果要推送其他分支,比如dev,就改成:

$git push origin dev

現在,你的小伙伴要在dev分支上開發,就必須創建遠程origin的dev分支到本地,于是他用這個命令創建本地dev分支:

$git checkout -b dev origin/dev

現在,他就可以在dev上繼續修改,然后,時不時地把dev分支push到遠程你的小伙伴已經向origin/dev分支推送了他的提交,而碰巧你也對同樣的文件作了修改,并試圖推送,如果推送失敗,因為你的小伙伴的最新提交和你試圖推送的提交有沖突,解決辦法也很簡單,Git已經提示我們,先用git pull把最新的提交從origin/dev抓下來,然后,在本地合并,解決沖突,再推送。git pull也失敗了(提示:“no tracking information”),原因是沒有指定本地dev分支與遠程origin/dev分支的鏈接,根據提示,設置dev和origin/dev的鏈接:git branch --set-upstream branch-name origin/branch-name

小結

- 查看遠程庫信息,使用git remote -v;

- 本地新建的分支如果不推送到遠程,對其他人就是不可見的;

- 從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠程的新提交;

- 在本地創建和遠程分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠程分支的名稱最好一致;

- 建立本地分支和遠程分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;

- 從遠程抓取分支,使用git pull,如果有沖突,要先處理沖突。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 不斷更新中 基本操作 查看git地址 git remote -v 將一個本地分支推送到服務器遠程倉庫 git...
    字字珠璣閱讀 3,578評論 0 8
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,713評論 4 54
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,721評論 9 163
  • 樓主的手機癮還是相當大,但玩手機玩久了對身體,對生活,對神馬一切的都不太好。 所以樓主推薦幾款親測有效的App !...
    小周_6fd3閱讀 14,228評論 0 2
  • 俗話說“三十而立,四十不惑”。王莊村有個傳統,結了婚,成了家,才算立了業。村里的半大不小的娃子都娶妻生子了...
    青正堂主閱讀 288評論 0 0