git 使用

git

鏡像包下載

原文地址

視頻地址

主流的版本控制工具:

  • git
  • svn ( Subversion )
  • cvs ( Concurrent Version System)
  • vss ( Micorosoft Visual SourceSafe )
  • tfs ( Team Foundation Service )
  • Visual Studio Online

分布式版本控制 ( 每個(gè)人都擁有全部的代碼 )

安裝

下載對(duì)應(yīng)版本, 安裝.

**Git Bash: **Unix 與 Linux 風(fēng)格的命令行.

**Git CMD: **Windows 風(fēng)格的命令行.

**Git CUI: **圖形界面的Git

配置環(huán)境變量只是為了能夠全局使用而已

基本的Linux命令

  1. cd: 改變目錄.
  2. cd .. : 回退到上一個(gè)目錄, 直接cd進(jìn)入默認(rèn)目錄
  3. pwd: 顯示當(dāng)前所在的目錄路徑
  4. ls(ll): 都是列出當(dāng)前目錄中的所有文件, 只不過(guò)ll(兩個(gè)ll)列出的內(nèi)容更為詳細(xì).
  5. touch: 新建一個(gè)文件 如 touch index.js 就會(huì)在當(dāng)前目錄新建一個(gè)index.js文件.
  6. rm: 刪除一個(gè)文件, rm index.js 就會(huì)把 mkdirindex.js 文件刪除.
  7. mkdir: 新建一個(gè)目錄, 就是新建一個(gè)文件夾.
  8. rm -r: 刪除一個(gè)文件夾, rm -r src 刪除src目錄.
  9. mv: 移動(dòng)文件, mv index.js src, index.js 是我們要移動(dòng)的文件, src 是目標(biāo)文件夾, 當(dāng)然, 這樣寫,必 夾在同一目錄下
  10. reset: 重新初始化終端/清屏.
  11. clear: 清屏.
  12. history: 查看命令歷史.
  13. help: 幫助.
  14. exit: 退出.
  15. " # " : 表示注解

git 命令

查看系統(tǒng)配置

所有的配置文件都保存在本地

  1. git config -l : 查看 git 配置.
  2. git config --system --list : 查看系統(tǒng)配置
  3. git config --global --list: 產(chǎn)看當(dāng)前用戶(global) 配置

用戶名,郵箱設(shè)置

  1. git config --global user.name "自己的昵稱": 設(shè)置名稱
  2. git config --global user.email "郵箱地址": 配置郵箱

git 文件的4種狀態(tài)

版本控制就是對(duì)文件的版本控制, 要對(duì)文件進(jìn)行修改, 提交等操作, 首先要知道文件當(dāng)前在什么狀態(tài), 不然可能會(huì)提交了現(xiàn)在還不想提交的文件, 或者要提交的文件沒有提交上.

  • Untracked:未跟蹤, 此文件在文件夾中, 但并沒有假如到git 庫(kù),不參與版本控制, 通過(guò) git add 狀態(tài)變?yōu)?Staged.
  • Unmodify:文件已經(jīng)入庫(kù), 未修改, 即版本庫(kù)中的文件快照內(nèi)容與文件夾中完全一致. 這種類型的文件有兩種去處, 如果它被修改, 而變?yōu)?Modified. 如果使用 git rm 移出版本庫(kù), 則成為 Untracked 文件.
  • Modified:文件已修改, 僅僅是修改, 并沒有進(jìn)行其他操作. 這個(gè)文件也有兩個(gè)去處, 通過(guò) git add 可進(jìn)入暫存 staged 狀態(tài), 使用 git checkout 則丟棄修改過(guò), 返回到 unmodify 狀態(tài), 這個(gè) git checkout 即從庫(kù)中去出文件, 覆蓋當(dāng)前修改.
  • Staged: 暫存狀態(tài), 執(zhí)行 git commit 則將修改同步到庫(kù)中, 這時(shí)庫(kù)中的文件和本地文件又變成一致, 文件為 Unmodify 狀態(tài), 執(zhí)行 git reset HEAD filename 取消暫存, 文件狀態(tài)為 Modified.

忽略文件

不想把某些文件納入到版本控制中

在目錄下建立 ",gitignore"文件, 此文件有如下規(guī)則:

  1. 忽略文件中的空行或以井號(hào)(#)開始的行將被忽略.
  2. 可以使用Linux 通配符. 例如: 星號(hào)(*) 代表任意多個(gè)字符, 問號(hào)(?) 代表一個(gè)字符, 方括號(hào) ([abc]) 代表可選字符的范圍
  3. 如果名稱的最前面有一個(gè)感嘆號(hào)(!), 表示例外規(guī)則, 鏡不被忽略
  4. 如果名稱的最前面是一個(gè)路徑分隔符(/), 表示要忽略的文件在此目錄下, 而子目錄中的文件不忽略.
  5. 如果名稱的最后面是一個(gè)路徑的分隔符(/), 表示要忽略的是此目錄下該名稱的子目錄, 而非文件(默認(rèn)文件或目錄都忽略).
# 為注釋
# 忽略所有 .txt結(jié)尾的文件, 這樣的話上傳就不會(huì)被選中!
*.txt
# 大麥lib.txt 除外
!lib.txt
# 僅忽略項(xiàng)目根目錄下的TODO文件, 不包括其他目錄 temp
/temp
# 忽略build/ 目錄下的所有文件
build/
# 會(huì)忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt 

使用碼云

設(shè)置本機(jī)綁定SSH公鑰, 實(shí)現(xiàn)免密登錄!

  • 進(jìn)入C:\User\Administrator\ .ssh 目錄
  • 生成公鑰
  • ssh -keygen

可以搭建自己的gitlab 服務(wù)器.

卸載

反安裝, 清理環(huán)境變量.

服務(wù)器使用

生成SSH密鑰:

ssh-keygen -t rsa

git 分支

**git分支常用到的命令: **

# 列出所有本地分支
git branch
# 列出所有遠(yuǎn)程分支
git branch -r
# 新建一個(gè)分支,但依然停留在當(dāng)前分支
git branch [branch-name]
# 新建一個(gè)分支,并切換到該分支
git checkout -b [branch]
# 合并指定分支到當(dāng)前分支
git merge [branch]
# 刪除分支
git branch -d [branch-name]
# 刪除遠(yuǎn)程分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]

git常用命令整理:

# 清除本地賬號(hào)
git config --system --unset credential.helper

面試題:

git 與 svn 最主要的區(qū)別是什么

SVN 是集中式版本控制器, 版本庫(kù)是集中放在中央服務(wù)器的, 而工作的時(shí)候, 用的都是自己的電腦, 所以首先要從中央服務(wù)器得到最新版本, 然后工作, 完成工作后, 需要把自己做完的活推送到中央服務(wù)器, 集中式版本控制器是必須聯(lián)網(wǎng)才能工作, 對(duì)網(wǎng)絡(luò)寬帶要求較高.

Git 是分布式版本控制系統(tǒng), 沒有中央服務(wù)器, 每個(gè)人的電腦就是一個(gè)完整的版本庫(kù), 工作的時(shí)候不需要聯(lián)網(wǎng), 因?yàn)榘姹径荚谧约旱碾娔X上. 協(xié)同的方法是這樣的: 比如說(shuō)自己在電腦上改了文件 A , 其他人也在電腦上改了文件 A , 這時(shí), 你們倆之間之需把各自的修改推送給對(duì)方, 就可以相互看到對(duì)方的修改了.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容