git和GitHub的基本使用

一、本地git

  • 1、設(shè)置git

可以試著輸入git,看有沒有安裝。沒有安裝自行安裝。
安裝完成后,還需要最后一步設(shè)置,在命令行輸入:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

注意git config命令的--global參數(shù),用了這個參數(shù),表示你這臺機(jī)器上所有的Git倉庫都會使用這個配置,當(dāng)然也可以對某個倉庫指定不同的用戶名和Email地址。

  • 可查看git的綁定地址,查看用戶名和郵箱地址,修改執(zhí)行上一步即可:

$ git config user.name
$ git config user.email

  • 2、創(chuàng)建版本庫(本地)
  • 通過git init命令把這個目錄變成Git可以管理的倉庫:

$ git init

Initialized empty Git repository in  C:/Users/my/Desktop/git庫/.git/
  • 3、把文件添加到版本庫
  • 第一步,用命令git add告訴Git,把文件添加到倉庫:

$ git add 文件名(添加單個)

$ git add * (添加全部)

執(zhí)行上面的命令,沒有任何顯示,這就對了,Unix的哲學(xué)是“沒有消息就是好消息”,說明添加成功。

  • 第二步,用命令git commit告訴Git,把文件提交到倉庫:

$ git commit -m "添加了...文件"

[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+)```
create mode 100644 readme.txt

git commit命令,-m后面輸入的是本次提交的說明,可以輸入任意內(nèi)容,當(dāng)然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動記錄。

  • 為什么Git添加文件需要addcommit一共兩步呢?因為commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."

  • 4、版本回退
  • git log命令查看:

$ git log 命令顯示從最近到最遠(yuǎn)的提交日志,

  • 如果嫌輸出信息太多,看得眼花繚亂的,可以試試加上--pretty=oneline參數(shù):

$ git log --pretty=oneline

你看到的一大串類似1094adb...的是commit id(版本號)

  • 在Git中,用HEAD表示當(dāng)前版本,上一個版本就是HEAD^ ,上上一個版本就是HEAD^^,當(dāng)然往上100個版本寫100個^比較容易數(shù)不過來,所以寫成HEAD~100

$ git reset --hard HEAD^

HEAD is now at e475afc add distributed
  • 還可以指定版本進(jìn)行切換(前幾位就行)

$ git reset --hard 1094a

HEAD is now at 83b0afe append GPL
  • Git提供了一個命令git reflog用來記錄你的每一次命令:

$ git reflog

e475afc HEAD@{1}: reset: moving to HEAD^
1094adb (HEAD -> master) HEAD@{2}: commit: append GPL
e475afc HEAD@{3}: commit: add distributed
eaadf4e HEAD@{4}: commit (initial): wrote a readme file
  • 5、工作區(qū)和暫存區(qū)

工作區(qū)(Working Directory),就是你在電腦里能看到的目錄

  • 第一步用git add把文件添加進(jìn)去,實際上就是把文件修改添加到暫存區(qū);
  • 第二步用git commit提交更改,實際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支。
  • 因為我們創(chuàng)建Git版本庫時,Git自動為我們創(chuàng)建了唯一一個master分支,所以,現(xiàn)在,git commit就是往master分支上提交更改。

$ git status

  • 如果有綠色就是還在暫存區(qū),執(zhí)行commit提交即可


    git綠色.png
  • 如果有紅色就是在工作區(qū)發(fā)生了變化(修改或添加了),沒有調(diào)到緩存區(qū)


    git紅色.png
  • commit之后,刪除了也會檢測到,變成紅色。如果add了,但是沒commit,這個時候把a(bǔ)dd的文件刪除了,查看status,還是綠色狀態(tài),但是提交之后會直接變紅,告知已刪除。


    git紅色 (2).png
  • 如果是不小心刪的,想撤回,不要緊,執(zhí)行 下面操作git checkout -- test.txt,會將add過的或者commit過的刪除文件撤回。

  • 6、丟棄工作區(qū)的修改

$ git checkout -- test.txt
撤回命令作用于之前提交過緩存區(qū)的文件,如果是新建的文件,沒有添加過緩存區(qū),無效。

命令git checkout -- test.txt意思就是,把test.txt文件在工作區(qū)的修改全部撤銷
(當(dāng)然也可以手動改過來,如果不嫌麻煩或者記得的話)

  • 7、緩存區(qū)退回到工作區(qū)

如果執(zhí)行了add命令,使用上一步就不好使了,需要執(zhí)行

$ git reset HEAD test.txt
$ git checkout -- test.txt
先將狀態(tài)撤回到工作區(qū),再將狀態(tài)撤回到修改前

Unstaged changes after reset:
M    test.txt

二、遠(yuǎn)程倉庫(GitHub)【都是綁定的自己的賬號內(nèi)的倉庫】

  • 1.添加關(guān)聯(lián)的遠(yuǎn)程倉庫

$ git remote add origin 'https://github.com/suibianni/ABB.git'

usage: git remote add [<options>] <name> <url>
用法: git remote add 起個名字 哪個url

也可添加多幾個,名字不能重復(fù)(可添加別人的,但是沒用,push不上去)

  • 2.查看關(guān)聯(lián)的遠(yuǎn)程倉庫

$ git remote -v
first https://github.com/suibianni/BBC.git (fetch)
first https://github.com/suibianni/BBC.git (push)
origin 'https://github.com/suibianni/ABB.git' (fetch)
origin 'https://github.com/suibianni/ABB.git' (push)

  • 3.刪除本地指定的遠(yuǎn)程地址

$ git remote remove origin 即可刪除

  • 4.修改關(guān)聯(lián)遠(yuǎn)程倉庫

$ git remote set-url origin https://github.com/suibianni/disan.git

此時再查看關(guān)聯(lián)的存?zhèn)}庫就變了,并且可以更改"其他名字對應(yīng)的url"

$ git remote -v
first https://github.com/suibianni/BBC.git (fetch)
first https://github.com/suibianni/BBC.git (push)
origin https://github.com/suibianni/disan.git (fetch)
origin https://github.com/suibianni/disan.git (push)

  • 5.推送到遠(yuǎn)程master分支

$ git push -u first master (首次執(zhí)行即可關(guān)聯(lián))
$ git push first master (之后再推就不用-u了)

  • 6.克隆,克隆一個本地倉庫

$ git clone url

如果有多個人協(xié)作開發(fā),那么每個人各自從遠(yuǎn)程克隆一份就可以了。

三、分支管理

  • 1.創(chuàng)建分支

$ git branch dev

  • 2.切換分支

$ git checkout dev

  • 3.創(chuàng)建并切換分支,等同于上兩步

$ git checkout -b dev

  • 4.查看當(dāng)前分支

$ git branch

* dev (帶星號表示當(dāng)前分支)
master
  • 5.使用dev分支push文件

先對test.txt文件修改,添加1234567890,執(zhí)行addcommit

$ git push -u origin dev (push到了origin庫的dev分支)

再次切換回master分支git checkout master后發(fā)現(xiàn),test.txt文件還是原來的樣子,并沒有添加1234567890,因為那個提交是在dev分支上,而master分支此刻的提交點并沒有變,如果想要一同改變,需要合并分支。

  • 6.合并分支

$ git merge dev

合并指定分支到當(dāng)前分支。再查看test.txt就和更改后的一樣的。

  • 7.刪除分支

$ git branch -d dev
刪除之后就只剩下master分支了

如果要丟棄一個沒有被合并過的分支,可以通過大寫D參數(shù)

$ git branch -D <name> 強(qiáng)行刪除

相關(guān):https://blog.csdn.net/u013474436/article/details/51287128

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

推薦閱讀更多精彩內(nèi)容