什麼是Git?
Git是一個版本控制系統,用於跟蹤計算機檔案的變化。Git是一個跟蹤計算機檔案變化的版本控制系統,用於幫助協調一個專案中幾個人的工作,同時跟蹤一段時間的進展。換句話說,我們可以說它是一個促進軟體開發中原始碼管理的工具。
Git和SVN的區別
Git是分散式版本控制系統,SVN是集中式版本控制系統
什麼是 Git 倉庫?
Git 倉庫指的是一個用於存放原始碼的地方。Git 倉庫是指存放所有 Git 檔案的地方。這些檔案既可以儲存在本地倉庫,也可以儲存在遠端倉庫。
有哪些Git命令及其功能?
- Git config - 配置使用者名稱和電子郵件地址
- Git add - 新增一個或多個檔案到暫存區域
- Git diff - 檢視對檔案的修改情況
- Git init - 初始化一個空的 Git 倉庫
- Git commit - 將更改提交到頭部,但不提交到遠端倉庫
使用Git有什麼好處?
- 更快的釋出週期
- 易於團隊協作
- 廣泛的接受度
- 保持原始碼的完整性
- 拉動請求
如何解決Git中的衝突?
- 識別造成衝突的檔案。
- 對這些檔案進行所需的修改
- 使用 git add 命令新增檔案。
- 最後一步是在git commit命令的幫助下提交檔案的修改。
如何發現一個分支是否已經被合併了?
有兩個命令可以確定:
- git branch --merged -- 返回已被合併到當前分支的分支列表。
- git branch --no-merged --返回尚未合併的分支的列表。
git remote和git clone什麼區別?
'git remote add'在你的git配置中建立了一個條目,指定了一個特定URL的名稱,而'git clone'透過複製位於該URL的現有倉庫來建立一個新的git倉庫。
reset和Revert的區別是什麼?
Git reset是一個強大的命令,它可以讓你的工作更有效率。
- Git reset 是一個強大的命令,用於撤銷對 Git 倉庫狀態的區域性修改。Git 重置的操作物件是 "Git 的三棵樹",即:提交歷史(HEAD)、暫存索引和工作目錄。
- Git的Revert命令建立了一個新的提交,撤銷了前一個提交的修改。這個命令為專案新增了一個新的歷史。它並不修改現有的歷史。
Git 和 GitHub 的區別是什麼?
Git 是一個版本控制系統。Git 是一個版本控制系統,用於管理原始碼歷史。而GitHub則是一個基於雲的託管服務,用於管理Git倉庫。GitHub的目的是幫助更好地管理開源專案。
git reset的功能是什麼?
Git reset "的功能是將你的索引以及工作目錄重置為你最後一次提交的狀態。
git fetch&git pull詳解
git fetch的意思是將遠端主機的最新內容拉到本地,使用者再檢查無誤後再決定是否合併到工作本地分支中。
git pull 是將遠端主機中的最新內容拉取下來後直接合並,即:git pull = git fetch+git merge,這樣可能會產生衝突,需要手動解決。
Git stash儲存的目的是什麼?
Git stash 獲取工作檔案和索引的當前狀態並放入堆疊以供下一步使用,並返回一個乾淨的工作檔案。因此,如果在物件中間並需要跳轉到其他任務,同時不想丟失當前的編輯,可以使用 Git stash。
說說GIT合併的方法以及區別?
Git程式碼合併有兩種:git merge 和 git rebase
git merge:這種合併方式是將兩個分支的歷史合併到一起,現在的分支不會被更改,它會比對雙方不同的檔案快取下來,生成一個commit,去push。
git rebase:這種合併方法通常被稱為“衍合”。他是提交修改歷史,比對雙方的commit,然後找出不同的去快取,然後去push,修改commit歷史。
Git提交程式碼的步驟
git clone (這個是你新建本地git倉庫,如已有可忽略此步)
git pull 取回遠端主機某個分支的更新,再與本地的指定分支合併。
git status 檢視當前狀態
git add + 檔案
git add -u + 路徑:將修改過的被跟蹤程式碼提交快取
git add -A + 路徑: 將修改過的未被跟蹤的程式碼提交至快取
git add -u com/breakyizhan/src 將 com/breakyizhan/src 目錄下被跟蹤的已修改過的程式碼提交到快取中
git commit -m "修復XXbug" 推送修改到本地git庫中
git push 把當前提交到git本地倉庫的程式碼推送到遠端主機的某個遠端分之上
什麼是“git cherry-pick”?
git cherry-pick 通常用於把特定提交從儲存倉庫的一個分支引入到其他分支中。常見的用途是從維護的分支到開發分支進行向前或回滾提交。這與其他操作(例如merge、rebase)形成鮮明對比,後者通常是把許多提交應用到其他分支中。
說一下Gitflow 工作流程嗎?
Gitflow 工作流程使用兩個並行的、長期執行的分支來記錄專案的歷史記錄,分別是 master 和 develop 分支。Master,隨時準備釋出線上版本的分支,其所有內容都是經過全面測試的。Hotfix,維護或修復分支是用於給快速給生產版本修復打補丁的。修復分支很像釋出分支和功能分支,除非它們是基於 master 而不是 develop 分支。Develop,是合併所有功能分支,並執行所有測試的分支。只有當所有內容都經過徹底檢查和修復後,才能合併到 master 分支。Feature,每個功能都應留在自己的分支中開發,可以推送到 develop 分支作為功能分支的父分支。