Git&GitHub之命令行操作

                                    Git&GitHub之命令行操作

 

       Git作爲分佈式版本控制工具,分支操作是其最大殺器,這點與集中式版本控制工具SVN大不相同,且大部分操作可在本地完成,並不需要聯網,除非用到GitHub或碼雲這些遠程庫,下面我們就來學習一下這個強大的版本控制工具吧,首先來體驗一波命令行的魅力。

 

1、Git的一般結構(這裏不包括分支)

 

 

2、Git操作的具體流程

 

本地提交

前提:下載並安裝好git工具

首先先創建一個項目,並利用Git Bash進入命令行界面。

使用命令初始化爲git項目:git init

之後會出現一個.git文件夾,說明初始化成功

設置一個系統級別的簽名,顧名思義,設置一次,以後的項目就不用設置了

需要設置用戶名和郵箱,文件信息保存在家目錄下:~/.gitconfig

命令:git config --global user.name 用戶名

           git config --global user.email 郵箱地址

新增一個文件,並從工作區添加到緩存區中

命令:git add [文件名]

查看文件的狀態可以用以下命令,綠色則代表已經在緩存區了,紅色則還沒add添加,沒顯示的話,那就是在本地庫中了。

命令:git status

再把文件從緩存區添加到本地庫,其中-m參數所帶的提交信息是必須

命令:git commit -m "提交信息" [文件名]

以上操作就是把文件提交到了本地庫了

 

遠程提交

先去GitHub創建一個項目

 

地址分爲兩種方式:

第一種:HTTPS:提交時需要輸入GitHub的用戶名和密碼

第二種:SSH:在提交時需提前在本機生成一個密鑰,然後去GitHub上面綁定,以後的提交都不需要做任何操作。密鑰生成的地址在家目錄下:~/.ssh/id_rsa.pub文件

SSH生成密鑰的命令:ssh-keygen -t rsa -C [郵箱名]

位置:頭像->setting->SSH and GPG keys->New SSH key,把密鑰粘貼進去就行

回到git bash先給遠程地址名創建別名,因爲一直用那麼長的地址提交很是不方便

命令:git remote add [別名] [遠程地址名]

這時就可以正式推送給遠程庫了

命令:git push [遠程地址別名] [本地分支名]

以上的操作就完成了項目的遠程提交了

 

遠程拉取

遠程拉取分爲兩種:

第一種:pull

命令:git pull [遠程地址別名] [遠程分支名]

pull拉取需要本地已經創建好了倉庫,然後去拉取遠程的內容,相當於fetchmerge的綜合操作。一般用於拉取自己已經push過的項目

 

第二種:clone

命令:git clone [遠程地址名]

clone拉取不需要本地的任何操作,拉取下來的同時也會同時初始化完成。一般用於去github拉取別人的項目

下面就演示下git clone,以github上一個優秀項目爲例,git pull同理

 

開始clone

 

clone完成

 

Git的版本切換

想要切換版本,必須要查看歷史版本

命令:git reflog 

或git log、git log --pretty=oneline、git log --oneline

切換版本(前面第一列的值代表局部索引值,唯一表示該版本)

命令:git reset --hard [局部索引值]

參數:--hard:本地庫移動HEAD指針,重置暫存區,重置工作區(三個區都切換了版本)

          --mixed:本地庫移動HEAD指針,重置暫存區(兩個區切換了版本,不加參數就默認mixed)

          --soft:本地庫移動HEAD指針,重置暫存區(僅一個區切換了版本)

切換到第二次提交的版本,局部索引值:21e0672

 

Git的分支管理

Git的分支圖

創建分支:git branch [分支名]

查看本地分支:git branch -v

查看本地和遠程分支:git branch -v -a

切換分支:git checkout [分支名]

在新的分支上增加點內容,再合併(記得add並commit纔算新增內容到本地庫)

合併分支:git merge [有新內容分支名](前提是已經切換到被合併的分支)

衝突:若在hot_fix修改某一行數據時,master也恰好在修改同一行數據,在合併merge時就會發生衝突,這時的衝突git是無法自動幫我們解決的,需要手動解決衝突,該保留哪些數據,要人爲決定

解決衝突步驟:

第一步:編輯衝突文件,刪掉髮生衝突後自動增加的特殊符號,並主觀保留hot_fix還是master修改後的內容,保存退出。

第二步:git add [文件名]

第三步:git commit -m "提交信息"   (這時不能帶文件名,否則會發生錯誤)

 

總結:以上就是git命令行的一些常規操作,如果需要了解IntelliJ下的git操作,可以參考我的另外一篇博文:https://blog.csdn.net/weixin_38802061/article/details/89789007

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章