Git版本控制工具

1.安裝git
  下載安裝git

  從[https://git-for-windows.github.io](https://git-for-windows.github.io/)
  下載(網速慢的同學請移步[國內鏡像]
  (https://pan.baidu.com/s/1kU5OCOB#list/path=%2Fpub%2Fgit)),
  然后按默認選項安裝即可

安裝完成后,在開始菜單里找到“Git”->“Git Bash”,蹦出一個類似命令行窗口的東西,就說明Git安裝成功!

安裝完成后,還需要最后一步設置,在命令行輸入:
(配置電子郵件和用戶名,git需要知道你是誰)

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
2.創建版本庫

什么是版本庫呢?版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄里面的所有文件都可以被Git管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。

在本地創建版本庫
特別提示:window版本的項目目錄一定要包含父目錄,否則會很容易出現這樣那樣的錯誤(親測!!!各位小伙伴注意)

首先,選擇一個合適的地方,創建一個空目錄;
其次,通過git init命令把這個目錄變成Git可以管理的倉庫:

$ git init

瞬間Git就把倉庫建好了,而且告訴你是一個空的倉庫(empty Git repository),當前目錄下多了一個.git的目錄,這個目錄是Git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄里面的文件,不然改亂了,就把Git倉庫給破壞了

(如果沒出現這個文件說明電腦隱藏了不可見文件夾或文件在控制面板禮文件夾選項里勾選這個選項就出現了)

3.創建一個文件
例如: index.txt
  內容隨便寫,如  hello

接下來用命令git add告訴Git,把文件添加到倉庫:
(特別提示,txt文件最好不要用文本編輯器更改,很容易出現問題)

$ git add index.txt

然后用命令git commit告訴Git,把文件提交到倉庫

$ git commit -m "添加了一個文本文件"
4.遠程倉庫

1.首先登錄你的githup

2.右上角點擊+號,創建一個新的倉庫(new repository),填寫上倉庫的名字和基本描述,確定,一個遠程倉庫就創建好了,是不是很簡單

3.接下來創建SSH Key

  $ ssh-keygen -t rsa -C "youremail@example.com"

youremail@example.com是你自己的郵件地址,記得一定要更改
執行完成之后會在c盤的/用戶/本機用戶名/.ssh 文件夾內生成三個文件
里面有id_rsaid_rsa.pub兩個文件,這兩個就是SSH Key的秘鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。

4.登陸GitHub,點擊右上角的頭像,打開“settings”,然后,點“[SSH and GPG keys]”,填上任意Title,在Key文本框里粘貼id_rsa.pub文件的內容:
點擊add ssh key添加完成

5.關聯遠成倉庫
目前,在GitHub上的這個learngit倉庫還是空的,GitHub告訴我們,可以從這個倉庫克隆出新的倉庫,也可以把一個已有的本地倉庫與之關聯,然后,把本地倉庫的內容推送到GitHub倉庫。

現在,我們根據GitHub的提示,在本地的倉庫下運行命令:

$ git remote add origin git@github.com:jsformat/virus.git

請千萬注意,把上面的jsformat替換成你自己的GitHub賬戶名,否則,你以后推送是推不上去的,因為你的SSH Key公鑰不在我的賬戶列表中。

添加后,遠程庫的名字就是origin,這是Git默認的叫法,也可以改成別的,但是origin這個名字一看就知道是遠程庫。

6.現在就可以通過以下命令把本地庫的所有內容推送到遠程庫上:

$ git push -u origin master

執行完成之后查看你的遠成倉庫是不是文件被推送上來了。。
(正常的操作現在一個文件已經被推送上來)

另外當提交的遠成倉庫出現 的一些問題

[git push origin master 報錯的解決方法]

1 錯誤提示如下:
 2 [root@linux1 php]# git push -u origin master
 3 To git@github.com:kangvcar/Results-Systems--PHP.git
 4  ! [rejected]        master -> master (fetch first)
 5 error: failed to push some refs to 'git@github.com:kangvcar/Results-Systems--PHP.git'
 6 hint: Updates were rejected because the remote contains work that you do
 7 hint: not have locally. This is usually caused by another repository pushing
 8 hint: to the same ref. You may want to first merge the remote changes (e.g.,
 9 hint: 'git pull') before pushing again.
10 hint: See the 'Note about fast-forwards' in 'git push --help' for details.
原因:

GitHub遠程倉庫中的README.md文件不在本地倉庫中。

解決方案:

我們只需加上 --rebase 參數然后再重新 push 一次即可

$ git pull --rebase origin master
$ git push -u origin master
對于拉取遠成倉庫文件到本地
    git clone https://github.com/jsformat/virus.git
     //https://github.com/jsformat/virus.git 這個地址是你遠程倉庫地址
刪除本地文件然后同步到遠程倉庫
  git rm a.txt  //刪除本地的a.txt

然后提交本次修改

git commit "刪除a.txt文件"

最后將文件同遠成倉庫更新

  git push
對于版本回退

首先,Git必須知道當前版本是哪個版本,

在Git中,用HEAD表示當前版本

上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100。

我們要把當前版本回退到上一個版本就可以使用git reset命令

  git reset --hard HEAD^
  //或者
   git reset --hard 上一個版本號

回退過之后如果想在回來,
如果當前的命令行窗口并沒有關閉,你可以找到ID號并且執行:

  git reset --hard 上一個版本號的ID

如果窗口已經關閉了,git提供了一個命令

git reflog //用來記錄你的每一次命令,可以找到對應的ID號

git分支操作

git 創建分支, 切換分支, 合并分支, 刪除分支及提交[commit提交到本地倉庫push名利提交到遠程服務器], 檢出[pull], 沖突修改, 本地倉庫同步遠程服務器[pul和push命令l]操作

開發中常用操作

刪除文件:git rm 文件名[刪除本地git倉庫文件, 提交后遠程服務器上的文件才會消失]

查看狀態:git status

添加記錄:git add 文件名 或 git add . [將文件提交到遠程git服務器上]

添加描述:git commit -m "描述或備注類似svn提交時的注釋"

同步數據:git pull  [獲取git遠程服務器上的數據也可以具體到某一分支如: git pull origin 分支名]

提交數據:git push origin 分支名

分支操作

查看分支:git branch

創建分支:git branch 分支名

切換分支:git checkout 分支名

創建+切換分支:git checkout -b 分支名

合并某分支到當前分支:git merge 分支名

  [比如,如果要將開發中的分支(deve),合并到穩定分支(master),
     首先切換的master分支:git checkout master。
     然后執行合并操作:git merge deve。
     如果有沖突,會提示你,調用git status查看沖突文件。
     解決沖突,然后調用git add或git rm將解決后的文件暫存。
     所有沖突解決后,git commit 提交更改。]

注意點:

分支衍合
分支衍合和分支合并的差別在于,分支衍合不會保留合并的日志,不留痕跡,而 分支合并則會保留合并的日志。
要將開發中的分支(dev),衍合到穩定分支(master)。
首先切換的master分支:git checkout master。
然后執行衍和操作:git rebase deve
如果有沖突,會提示你,調用git status查看沖突文件。
解決沖突,然后調用git add或git rm將解決后的文件暫存。
所有沖突解決后,git rebase --continue 提交更改。

刪除分支:git branch -d 分支名

刪除分支執行git branch -d 分支名
如果該分支沒有合并到主分支會報錯,可以用以下命令強制刪除git branch -D 分支名

刪除遠程分支:git push origin :name
需要注意的是origin后面有空格

撤銷修改:git checkout -- file
對應圖片操作

branch.png

對于提交到分支的文件的操作步驟

1.新建本地倉庫,并且初始化

  git init

2.添加文件到暫存區

  git add -A //全部文件

3.提交文件

  git commit -m "描述"

4.將遠程信息拉取到本地(比如遠程分支的信息,這步可以不做)

git fetch

5.查看分支信息(建立在第4步的基礎上)

git branch -r  //所有遠程分支信息

6.新建本地分支

git branch newBranch  //newBranch 為分支名

7.切換到該分支

git checkout newBranch

8.關聯遠程倉庫

git remote add origin git@github.com:jsformat/virus.git //我的遠程倉庫

9.提交文件到該分支

git push origin

刪除遠程分支文件或者文件夾

git rm -r --cached a/2.txt //刪除a目錄下的2.txt文件   刪除a目錄git rm -r --cached a

git commit -m "刪除a目錄下的2.txt文件" 

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

推薦閱讀更多精彩內容

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,721評論 9 163
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,716評論 4 54
  • <FrameLayoutandroid:layout_width="match_parent"android:la...
    自然之秋閱讀 249評論 0 0
  • 我今天最開心的事。今天語文老師給我們上課講了對韻歌,讓我想到《笠翁對韻》所以我覺得上課很快樂!因為我全認識這些字。...
    ZZ李夢涵閱讀 131評論 1 1
  • 12 構建API 在上一章中,你構建了一個學生注冊和課程報名系統。你創建了顯示課程內容的視圖,并學習了如何使用Dj...
    lakerszhy閱讀 2,603評論 0 6