目錄
一、安裝git
1.下載git
2.git安裝
3.環境變量配置與測試
?二、使用教程
1.創建版本庫
2.版本回退
3.刪除和恢復文件
一、安裝git
1.下載git
官方下載地址:https://git-scm.com/download
?
然后進入以下頁面,點擊下載鏈接即可(windows一般都是64位)。?
下載完畢后打開安裝包進入安裝步驟。?
2.git安裝
選擇自己的安裝路徑,如下:
3.環境變量配置與測試
安裝完之后進行環境配置,在命令行輸入以下內容:
git config --global user.name "your_name"
按回車后接著輸入:
git config --global user.email "your_email"
完成后如下圖:
?注意:要填自己真實的郵箱
因為 Git 是分布式版本控制系統,所以需要填寫用戶名和郵箱作為一個標識,git config --global 參數,有了這個參數,表示你這臺機器上所有的 Git 倉庫都會使用這個配置,當然你也可以對某個倉庫指定的不同的用戶名和郵箱。
這樣,我們的 Git 客戶端就下載并安裝完成了。
?二、使用教程
1.創建版本庫
(1)通過命令git init把這個目錄變成git可以管理的倉庫
首先要新建一個目錄(注意:這里可以在盤里面直接創建新的文件目錄,也可以使用命令mkdir file_name進行創建)進行示范,這里演示第二種方法:
先將路徑切換到你自己的盤里面,命令如下:
隨后創建自己的文件夾,用命令mkdir?file_name進行創建:
然后進入文件夾所在位置查看自己是否創建成功,創建成功如下圖所示:
接著進入新創建的文件夾目錄中,這樣便在D盤目錄下創建了一個git_file版本庫,如下:
但此時它還不是?git 可以管理的倉庫,于是便要執行git init命令才行,如下:
此時你的git_file文件目錄下便會多一個.git的文件夾,這個文件夾這個目錄是 Git 來跟蹤管理版本的,沒事千萬不要手動亂改這個目錄里面的文件,否則會把 git 倉庫給破壞了,如下:
(2)把文件添加到版本庫中
在版本庫git_file目錄下新建一個記事本文件readme.txt,并輸入一些內容在里面,比如:11111
第一步:使用命令 git add readme.txt 添加到暫存區里面去,如下:
如果沒有任何提示,說明已經添加成功了。
第二步:用命令 git commit -m "注釋" (注釋里面的內容不設要求,自己能明白就行)告訴 Git,把文件提交到倉庫。
此時已經提交成功了,接下來我們可以看一下是否還有文件沒有提交,使用命令git status,如下:
如果出現這樣的字樣,說明文件已經全部提交了。
當我們對readme.txt文件進行修改,在其內容后面添加一行22222的內容,繼續使用git status進行狀態查看,如下:
從提示的內容可知,readme.txt文件的內容已經被修改,但是還未提交到倉庫里面,如果想要查看文件里面究竟修改了什么內容,可以使用命令git diff readme.txt進行查看,如下:
可以看到,紅色字體部分是修改前的內容,綠色部分是修改之后的內容。
確認修改了什么內容后我們就可以放心提交到倉庫了,提交修改過后的文件和前面說的提交文件是一樣的操作,第一步是把文件放入暫存區,使用命令git add 文件名 ,第二部是提交文件到倉庫,使用命令git commit -m "注釋",如下:
以上兩步完成以后可以再看一下是否還有文件沒有提交,使用git status進行查看,如下:
2.版本回退
我們對readme.txt文件再次進行修改,在后面添加一行內容33333,并提交到倉庫,如下:
如果我們不想要當前的版本,怎樣才能換回以前的呢?
我們可以使用git log來查看一下之前的歷史記錄,使用命令git log即可查看,如下:
我們可以看到,歷史記錄從上到下是從修改時間由近到遠排列的,在上面可以看到修改的時間以及修改人的信息,如果覺得信息太多的話,我們可以使用命令git reflog或者git log --pretty=oneline進行簡化,如下:
回到之前所說的問題,我們怎樣才能回退到之前的版本呢?這里推薦兩種方法:
第一種:使用命令git reset --hard HEAD^,這條命令的作用是回退到上一個版本,如果要回退到上上個版本,要使用命令git reset --hard HEAD^^,以此類推;
第二種:第一種方法只適用于要退回的版本不遠的情況,如果要退回前100個版本的話是非常不方便的,此時我們可以使用git reset --hard HEAD~100命令即可。
接下來我們做個示范,這是目前的readme.txt文件:
現在退回上一個版本,如下:
現在我們用git log看一下歷史記錄:
現在已經沒有剛才那個版本了,文件里面的內容也改變了,如果要恢復剛才的版本該怎么辦呢?
我們可以通過上面所說的版本號回退,使用命令git reset --hard 版本號,版本號用命令git reflog進行查看(上面有提過),如下:
現在我們可以使用命令git reset --hard 1a90bde來恢復了,演示如下:
使用cat readme.txt來查看文件里面的內容,如下:
可以看到,目前已經恢復成最新的版本了。
3.刪除和恢復文件
現在我們在版本庫git_file目錄里面添加一個文件c.txt,然后提交,如下:
如果我們要刪掉c.txt這個文件的話,可以直接在文件目錄中刪掉它,或者使用rm 文件名命令刪除,如果我想徹底從版本庫中刪掉了此文件的話,可以再執行commit 命令提交掉,現在目錄是這樣的:
只要沒有commit之前,如果我想在版本庫中恢復此文件如何操作呢?可以使用如下命令git restore-- c.txt,如下所示:
這里有 2 種情況,如下:
1. readme.txt 自動修改后,還沒有放到暫存區,使用 撤銷修改就回到和版本庫一模一樣的狀態。
2. 另外一種是 readme.txt 已經放入暫存區了,接著又作了修改,撤銷修改就回到添加暫存區后的狀態。
4.遠程倉庫
現在我們已經在本地創建了一個 Git 倉庫,又想讓其他人來協作開發,此時就可以把本地倉庫同步到遠程倉庫,同時還增加了本地倉庫的一個備份。
常用的遠程倉庫就是 github:https://github.com/,接下來我們演示如何將本地代碼同步到github。
在 github 上創建倉庫,首先你得在 github 上創建一個賬號,這個就不演示了。然后在 github 上創建一個倉庫,創建好后即可創建一個倉庫
點擊“create repository”按鈕倉庫就創建成功了。
Github 支持兩種同步方式“https”和“ssh”。
如果使用 https 很簡單基本不需要配置就可以使用,但是每次提交代碼和下載代碼時都需要輸入用戶名和密碼。
如果使用 ssh 方式就需要客戶端先生成一個密鑰對,即一個公鑰一個私鑰。然后還需要把公鑰放到 githib 的服務器上。
什么是 SSH?
SSH 為 Secure Shell(安全外殼協議)的縮寫,由 IETF 的網絡小組(Network Working Group)所制定。SSH 是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議,利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。
?5.ssh密鑰的生成和配置
ssh密鑰的生成
第一步:創建 SSH Key。在用戶主目錄下,看看有沒有.ssh 目錄,如果有,再看看這個目錄下有沒有 id_rsa 和 id_rsa.pub 這兩個文件,如果有的話,直接跳過此如下命令,如果沒有的話,打開命令行,輸入如下命令:git bash,執行命令,生成公鑰和私鑰,命令: ssh-keygen -t rsa,如下:
然后我們可以根據路徑找到我們的公鑰私鑰:
ssh 密鑰配置
密鑰生成后需要在 github 上配置密鑰本地才可以順利訪問。
接著打開你的id_rsa.pub(公鑰)文件,可以用記事本打開,并把里面的內容全部復制下來,粘貼在Key的部分,然后點擊Add SSH key按鈕完成配置。
6.同步到遠程倉庫
同步到遠程倉庫可以使用 git bash。
現在,我們根據 GitHub 的提示,在本地的git_file倉庫下(D:\git_file)運行命令:
git remote add origin git@github.com:emily-xl/python_project.git
git push -u origin master
如果出現如下錯誤:
這說明你之前已經連接過你的遠程倉庫了,我們可以執行git remote rm origin指令,再執行以上兩條指令,效果如下:
把本地庫的內容推送到遠程,使用 git push 命令,實際上是把當前分支master 推送到遠程。
之前創建倉庫的時候如果你沒有勾選“Add a README file”這個內容,那么你的倉庫里面應該是空的,由于遠程庫是空的,我們第一次推送 master 分支時,加上了 –u 參數,Git不但會把本地的 master 分支內容推送的遠程新的 master 分支,還會把本地的master 分支和遠程的master 分支關聯起來,在以后的推送或者拉取時就可以簡化命令。推送成功后,可以立刻在 github 頁面中看到遠程庫的內容已經和本地一模一樣了,上面的要輸入 github 的用戶名和密碼如下所示:
從現在起,只要本地作了提交,就可以通過如下命令:git push origin master把本地 master 分支的最新修改推送到 github 上了,現在你就擁有了真正的分布式版本庫了。
7.如何從遠程庫克隆
當我們想從GitHub上面下載某個項目到我們本地倉庫上面時,我們此時執行命令:git clone 項目的ssh地址,如下:
此時使用ls指令,就可以看到這個名叫masr的項目出現在我們當前倉庫里面了。
8.團隊協作項目
當我們想要指定某幾個人才有訪問權限并對這個項目進行修改時,我們可以進行如下操作:
輸入你的密碼:
進入界面之后點擊綠色的按鈕:
對方會接收到一封郵件,按照郵件上面的內容執行就行,隨后就可以邀請你想要的人進行創作了。
9.創建和合并分支
在版本回填退里,你已經知道,每次提交,Git 都把它們串成一條時間線,這條時間線就是一個分支。截止到目前,只有一條時間線,在 Git 里,這個分支叫主分支,即 master 分支。HEAD 嚴格來說不是指向提交,而是指向 master,master 才是指向提交的,所以,HEAD 指向的就是當前分支。
首先,我們來創建 dev?分支,然后切換到 dev 分支上。如下操作:
git checkout 命令加上 –b 參數表示創建并切換,相當于如下 2 條命令:
git branch dev
git checkout dev
git branch 查看分支,會列出所有的分支,當前分支前面會添加一個星號。
我們在 dev 分支的readme.txt文件上添加一行44444,我們先來查看下 readme.txt 內容:
接著提交(以下的dev2應是dev):
再切換回master分支,效果如下:
可以看到兩條分支上面的內容并不一樣,現在我們可以把 dev 分支上的內容合并到分支 master 上了,可以在 master 分支上,使用如下命令 git merge dev (以下dev2為dev)如下所示:
現在兩條分支上面的內容完全一樣了。
合并完后,我們可以接著刪除 dev 分支了,操作如下:
這樣就算是刪除好了。
總結創建與合并分支命令如下:
查看分支:git branch
創建分支:git branch name
切換分支:git checkout name
創建+切換分支:git checkout –b name
合并某分支到當前分支:git merge name
刪除分支:git branch –d name
10.其他
出現這種問題多半是因為你的電腦名稱時以中文命名的,打開設置修改電腦名稱即可:
然后重啟電腦就會發現亂碼沒有了。
---END