【025期】Java工具面試題(一):版本控制工具

開篇介紹

你們好,我是Java最全面試題庫的提褲姐,今天這篇是Java工具系列的第一篇,主要總結了Git和SVN相關的問題,在後續,會沿着第一篇開篇的知識線路一直總結下去,作到日更!若是我能作到百日百更,但願你也能夠跟着百日百刷,一百天養成一個好習慣。git

Git和SVN有什麼區別?

  • Git是分佈式的,而SVN不是分佈式的
  • Git把內容按元數據方式存儲,而SVN是按文件
  • Git的內容的完整性要優於SVN
  • SVN只能有一個指定中央版本庫。而 Git能夠有無限個版本庫。

SVN優缺點?

優勢面試

  • 管理方便,邏輯明確,符合通常人思惟習慣。
  • 易於管理,集中式服務器更能保證安全性。
  • 代碼一致性很是高。
  • 適合開發人數很少的項目開發。

缺點數據庫

  • 服務器壓力太大,數據庫容量暴增。
  • 若是不能鏈接到服務器上,就不能提交,還原,對比等等。
  • 不適合開源開發。可是通常集中式管理的有很是明確的權限管理機制(例如分支訪問限制),能夠實現分層管理,從而很好的解決開發人數衆多的問題。

Git優缺點?

優勢緩存

  • 適合分佈式開發,強調個體。
  • 公共服務器壓力和數據量都不會太大。
  • 速度快、靈活。
  • 任意兩個開發者之間能夠很容易的解決衝突。
  • 離線工做。

缺點安全

  • 代碼保密性差,一旦開發者把整個庫克隆下來就能夠徹底公開全部代碼和版本信息。

說一下Git建立分支的步驟?

  • Git branch test    建立test的branch
  • Git checkout dev    切換到dev分支
  • Git pull    遠程分支拉到本地
  • Git checkout -b main   建立並切換到main分支
  • Git push origin main    推到遠程分支

說一下Git合併的兩種方法以及區別?

Git代碼合併有兩種:Git MergeGit ReBase服務器

Git Merge
這種合併方式是將兩個分支的歷史合併到一塊兒,如今的分支不會被更改,它會比對雙方不一樣的文件緩存下來,生成一個commit,去push。分佈式

Git ReBase
這種合併方法一般被稱爲「衍合」。他是提交修改歷史,比對雙方的commit,而後找出不一樣的去緩存,而後去push,修改commit歷史。工具

Git如何查看文件的提交歷史和分支的提交歷史?

使用git log命令code

什麼是 git stash?

用於臨時保存和恢復修改,可跨分支。
使用場景:寫着代碼,寫着寫着,別人告訴我bug修好了,我就要去更新一下代碼,若是更新衝突,應該把當前代碼保存起來,此時可使用git stash命令。
命令的本質幫咱們作了兩件事:
①把全部改動作了一個快照,而後保存起來,並還原原來的文件。
②在須要的時候,能夠把以前的修改恢復。開發

什麼是git stash drop

刪除保存的存儲。

git config 的做用?

配置或讀取相應的環境變量。
這些環境變量,主要保存了 Git 在各個環節的具體工做方式和行爲。
位置:

  • 用戶主目錄的.gitconfig
  • 工做目錄的.git下面的.gitconfig
  • /etc/.gitconfig
相關文章
相關標籤/搜索