版本控制-git的使用


大家好,我又回來了,上個禮拜因為熬夜看球感冒了,所以沒有寫新的文章出來。

 

這周給大家介紹下git的使用

 

我們為什么需要一個版本控制的軟件呢?

我相信大家很多人在進行版本控制時往往都是使用復制的方式,不過這樣做的后果是

1.需要程序員自己記住每一個復制所對應的版本是多少,

2.項目回退時很容易混淆當前的工作路徑,並且對以前的版本進行修改,導致以前的版本被錯誤的修改

3.多人合作時,會出現大家操作的項目的版本不一致的現象

所以我們需要一個版本控制軟件來幫助我們進行版本控制,減少我們記憶上的負擔和使版本控制變得簡單易操作

 

 

一、什么是git

Git是一個開源的分布式版本控制系統,能夠有效的對項目進行版本的控制。

Git既可以用於個人的,本地的版本控制,又可以在多人合作時,將版本備份到服務器,保證多人間版本的一致性

 

 

 

二、git的安裝

下載地址 https://code.google.com/p/msysgit/downloads/list

第一步 在官方網站上下載

image

 

 

第二步  安裝,一路next,直到出現如下界面

image

第一個意思是只能通過git bash輸入命令,

第二個指可以通過cmd啟動git,輸入git相關命令必須等它啟動后

第三個指將可以在cmd中直接輸入git的相關命令,注意這個可能會覆蓋cmd中原有的命令

建議大家選第一個就可以了

 

 

image

是為了處理windows和linux/unix中換行符的不同(windows中換行符是CRLF,linux/unix中是LF)

第一個選項:會將所有的LF轉換為CRLF,如何你是在windows下使用,建議勾選

第二個選項:會將所有的CRLF轉換為LF,如何你是在linux/unix下使用,建議勾選;
第三個選項:不進行換行符的轉換

 

三、git的使用

 

1. 中文錄入問題

默認安裝的 msysGit 的 shell 環境中無法輸入中文。為了能在 shell 界面中輸入中文,需要修改配置文件 /etc/inputrc ,修改相關的配置如下:

# disable/enable 8bit input 

set meta-flag on 

set input-meta on 

set output-meta on 

set convert-meta off

關閉 Git Bash 再重啟,就可以在 msysGit 的 shell 環境中輸入中文了。

這樣就可以錄入中文了,仍會有部分字是亂碼的,所以大家在使用中,要避免輸入中文,如用戶名等。

 

2. ls 命令顯示中文文件名

最常用的用於顯示目錄和文件名列表的命令 ls 在顯示中文文件名的時候也有問題。中文會顯示為亂碼

可以將alias ls="ls --show-control-chars"

添加到配置文件 /etc/profile 的最后面,用一個空格與原有的內容分開即可,可實現在每次運行 Git Bash 時自動加載。

 

 

3.Windows下修改Git Bush的HOME路徑

Windows默認的HOME和~路徑一般都是C:\Users\用戶名,每次得用命令切換到常用的Repository下,此操作重復而沒有意義。

修改Git Bush默認的Home路徑的方法如下

打開Git安裝位置\etc\profile文件,找到

# normalize HOME to unix path

HOME="$(cd "$HOME" ; pwd)"

export PATH="$HOME/bin:$PATH"

增加兩行,修改后結果如下:

# normalize HOME to unix path

HOME="你想要修改的HOME路徑"

HOME="$(cd "$HOME" ; pwd)"

cd

export PATH="$HOME/bin:$PATH"

再次啟動Git Bush,就會自動進入新修改后的HOME路徑了

 

由於有關git東西很多,下面我用於一個例子來向大家進行講解

將代碼進行本地的備份

在當前目錄下新建了一個test文件(mkdir test)

image

 

 

切換到test文件中(cd test)

新建了一個git庫(git init)

image

 

 

新建了一個new.txt文件,內容是hello world(echo “hello world”>>nexw.txt)

image

 

 

發現new.txt未加入到git的版本控制的監視中untracked files(git status)

image

 

 

 

將new.txt加入到監視列表中(git add new.txt)

image

 

發現new.txt已經添加到git的監視列表中,現處於已修改待提交狀態(git status)

image

 

 

將項目里的所有處於已修改待提交狀態的文件提交,並且將該版本進行提交,版本標注為first(git commit –m “first”)

image

 

 

 

修改new.txt(echo “hello new world”>>new.txt)

將修改過的文件提交(git add new.txt)

將該版本進行提交,版本標注為second(git commit –m “second”)

image

 

查看提交歷史(git log)

發現已有兩個記錄

image

 

 

現在new.txt中的內容是hello world\r\nhello new world

image

 

 

切換到first(git checkout aa3975)

根據git log的結果aa3975即可確定first版本是哪一個

image

 

 

發現new.txt的內容已經變回new.txt了

image

 

 

將代碼備份到服務器端

由於校園網的限制這里,我就不用github演示,而是使用京東的代碼庫進行演示,將代碼上傳到自己的京東的代碼庫中

登陸到https://code.jd.com/

 

注冊一個用戶

image

 

 

登陸

image

 

 

點選創建代碼庫,創建代碼庫,填寫相關信息(私有代碼庫指只有你邀請的人才可以對代碼進行編輯)

image

 

 

 

創建完成后,會在代碼庫管理中,找到它

image

 

 

 

點擊進入后,復制右下方的地址

image

 

 

 

返回到git中,新建一個遠程的倉庫,名字叫做web(git remote add web https://code.jd.com/temptry/temptry.git

image

 

 

 

切換回master分支下

image

 

 

 

將web倉庫上的數據取到本地的master分支上(默認產生的主分支),這個需要輸入你在京東注冊時,輸入的用戶名和密碼

,如果覺得每次都要輸入很麻煩可以

1、新建一個名為_netrc的文件,文件內容如下

machine code.jd.com  #服務器地址

login 111111  #用戶名

password 1111  #密碼

2、將該文件放到一個不含有空格的路徑下如D:\code,而D:\Program Files (x86)則是非法的,含義空格

3、新建一個名為HOME的環境變量,密碼用戶名文件所在的路徑。

這樣以后就不用輸入密碼了

image

 

 

 

將本地代碼提交到服務器上(git push web master)

image

 

發現,代碼已經同步到服務器上了

image

 

 

 

 

git還有很多的功能,推薦一本書籍《pro git》,有中文的版本,pdf也很容易從網上找到


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM