有關 git 的使用總結

前言

由于公司使用的 git 來管理項目的版本迭代問題,天天使用,可以說是非常重要的內容。以前都是將一些相關的命令行和操作記在筆記本上,但是最近拿出筆記本來才發現,記錄的太過凌亂,因此也來寫一篇文章來整理一下,以便以后方便使用。畢竟好記性不如爛筆頭嘛。

git 的相關說明

Git是一款免費、開源的分布式版本控制系統,用于敏捷高效地處理任何或小或大的項目。
百度百科
使用 git 版本管理工具一般是用命令行進行操作,當然也有可視化工具,這就看自己的愛好了。

工具的選擇

1、可以直接打開本地的命令行工具,進入到自己項目所在的文件夾下,進行操作即可
2、使用 git 工具打開(git 相關的工具也有多種,這里使用的是 git version2.9.2)。在項目文件夾下右鍵選擇 git bash here,即可進行操作

準備工作

1、下載安裝 git 工具(這里使用的是 git version2.9.2)。在任意文件夾下右鍵出現 git bash here 等字樣,說明安裝成功。
2、選擇項目工作空間(建議:這里選擇一個單獨的文件夾,里面僅僅是項目使用,避免與其他文件混淆,便于操作)。工作空間的選擇主要是用于創建項目倉庫使用。
3、Mac 環境下進行配置和安裝
(1) cd~/.ssh:檢查是否有ssh密鑰,如果沒有提示:no such file or directory
(2) 如果有已存在的ssh密鑰,需要進行備份一下并刪除,執行
config id_rsa id_rsa.pub known_hosts
mkdir key_backup #在當前目錄下創建一個叫"key_backup"的文件夾
cp id_rsa* key_backup #復制id_rsa和id_rsa.pub到key_backup里面
rm id_rsa*
(3) 創建一個新的ssh密鑰
ssh-keygen -t rsa -C "你的郵箱"
然后一路enter即可,需要輸入密碼的正確輸入
現實一個方形圖表示創建成功
(4) 在你的GitHub上setting里面新建ssh
(5) 在你本地的.ssh/id_rsa.pub里面的全部復制到GitHub上保存
(6) 確認連接 ssh -T git@github.com 或者ssh git@github.com
(7) 設置你的用戶名和郵箱
git config --global user.name "your name"
git config --global user.email "your email"
(8) 將遠程的代碼克隆下來
git clone git@github.com*
指定文件夾路徑 git clone git@github.com*** file/files(文件夾路徑)
等著下載完即可,這個過程比較慢,或者使用下面的步驟也可

以上的(1)-(8)步驟在 windows 系統上同樣適用

創建項目倉庫

有兩種方式創建項目倉庫:
1、是在現存的目錄下,通過導入所有文件來創建新的 Git 倉庫(git init)
2、從已有的遠端 Git 倉庫克隆出一個新的鏡像倉庫來(git clone)

git init 初始化本地倉庫
要對現有的某個項目開始用 Git 管理,只需到此項目所在的目錄,執行:git init
git clone 是將遠程的代碼倉庫復制到本地
需要獲得遠程代碼倉庫的 URL(兩種方式:ssh 和 https)

3、創建分支 (git branch -b branch_name)
4、查看分支 (git branch:查看本地分支,git branch -a:查看所有分支,包括遠程分支)
5、刪除分支 (git delete -d branch_name:刪除已經 merge 到本分支的分支,git delete -D branch_name:刪除分支)
6、切換分支 (git checkout branch_name)

在這里創建分支是很常用的功能,創建分支后,我們可以將任務拆分,然后完成后合并,提高工作效率。
創建分支時,一般我們選擇一個根分支,在這個分支的基礎上創建分支,這樣我們可以獲得根分支上的所有代碼,并進行其他操作,在 -b 后面加上分支名即可
查看分支是,我們可以查看本地和遠程的分支列表,進而進行相應的操作,比如刪除、切換分支等
刪除分支時,使用 -d 時會判斷,刪除的分支是否已經合并到你當前的分支上,如果沒有則刪除失敗。-D 會直接進行刪除。
在獲取分支列表后,就可以使用 checkout 進行切換分支了

7、查看修改的文件列表(git status)
8、添加修改文件(git add file_name)
9、清除修改(在尚未提交的情況下:git checkout file_name)

使用 status 會打印出當前分支的所有改變的文件
這是 checkout 的另一種使用方法,就是可以根據需要還原文件,后面跟上文件名即可

10、提交代碼(git commit )
11、提交代碼(git push origin branch_name)
12、修改沖突流程(git fetch branch_name,git rebase origin/develop, git rebase --continue,git add file_name,git push -f branch_name,git merge branch_name)

git commit :是將代碼提交到本地緩存區
git push origin branch_name:將緩存區代碼提交到遠程倉庫
一般正常的流程是:
git status:查看修改文件
git add file_name:添加修改文件
git commit:將修改的文件添加到本地緩存區
git push origin branch_name:提交到遠程倉庫

在這里是最復雜的一步,當我們在提交代碼的時候可能會出現我們的分支與其他同事的分支沖突的情況(同時修改同一個地方),因此我們要根據需要進行解決,將沖突部分刪除,保留正確的代碼。

命令的使用步驟是:
git fetch branch_name:將遠程分支的代碼全部拉取到本地
git rebase origin/develop:查看所有沖突,并解決
git add file_name:將解決的沖突加入到緩存區
git rebase --continue:解決完上一個沖突后,繼續執行 rebase 查看下一個沖突部分
上面的兩部其實也可以使用 git merge branch_name 來完成,大致一樣
git push -f branch_name:將解決完沖突的代碼強制推送到遠程分支,并覆蓋(這一步非必須做,盡量不要做,可能會導致丟失代碼)

13、查看提交列表(git log)
14、還原提交(在提交代碼的情況下:git resert commit_name)

在提交完代碼后我們可以通過打 log 的方式,查看提交的列表
如果對于某次提交的功能進行還原,則可以使用 resert

15、保存工作進度(git stash)
16、查看進度列表(git stash list)
17、回到進度(git stash pop/apply stash@{進度ID})
18、刪除進度(git stash drop stash@{進度ID})

這個功能適用于,當我們在開發一個功能時,突然有其他任務需要我們臨時處理,但是本地的代碼又不至于提交一次(中間含有很多調試代碼和 Log.e()……都懂的)這樣的場景,我們只需要將進度保存,就可以回到分支無修改狀態,這時就可以切換分支,等完成其他任務,再切回分支,返回進度即可。

創建本地倉庫并上傳到遠端

1、使用命令行工具,cd 到你的項目的文件夾下,使用 git init
2、然后 git add README.md,添加 README 文件
3、將本地文件添加到暫存區里面,使用 git add ,然后 git commit -m "first commit" 提交到本地倉庫
4、在自己的 github 上創建一個新倉庫,復制倉庫的 URL
5、使用 git remote add origin URL 關聯到遠程倉庫
6、將本地代碼推到遠程倉庫中去,git push -u origin master

寫在最后

這篇文章拖了很久,后來發現還是寫完比較好,畢竟善始善終嘛。這里只是用于記錄一些 git 最基本的使用命令,至于原理什么的可以到 git 官網進行學習,不過暫時只想到這么多,其實 git 的使用還有很多,希望大家多多查閱資料進行補充。如有錯誤,歡迎大家糾正,以便進一步修改。

最后一句

希望自己能以開始的夢想為目的,不要偏離了自己的初衷。

推薦一個 git 的學習網站

git

花絮:最近突然看到了 git 的誕生史,再次感慨大神就是大神啊,有興趣的可以 look look
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容