色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是版本控制系統(tǒng)?

技術(shù)讓夢想更偉大 ? 來源:技術(shù)讓夢想更偉大 ? 2023-01-10 09:50 ? 次閱讀
一、 版本控制工具

1.1. 什么是版本控制系統(tǒng)

版本控制系統(tǒng)(Version Control System):是一種記錄一個(gè)或若干文件內(nèi)容變化,以便將來查閱特定版本修訂情況的系統(tǒng)。版本控制系統(tǒng)不僅可以應(yīng)用于軟件源代碼的文本文件,而且可以對(duì)任何類型的文件進(jìn)行版本控制。

常見的版本控制系統(tǒng)有:cvs、svn、git

1.2. 為什么要有版本控制系統(tǒng)?

  1. 在開發(fā)過程中,經(jīng)常需要對(duì)一個(gè)文件進(jìn)行修改甚至刪除,但是我們又希望能夠保存這個(gè)文件的歷史記錄,如果通過備份,那么管理起來會(huì)非常的復(fù)雜。

  2. 在多人開發(fā)時(shí),如果需要多人合作開發(fā)一個(gè)頁面,那么修改以及合并也會(huì)非常的棘手。容易出現(xiàn)沖突。

1.3. 版本控制系統(tǒng)分類

關(guān)于版本控制

本地版本控制系統(tǒng)

本地版本控制系統(tǒng)就是在一臺(tái)機(jī)器上,記錄版本的不同變化,保證內(nèi)容不會(huì)丟失

缺點(diǎn):如果多人開發(fā),每個(gè)人都在不同的系統(tǒng)和電腦上開發(fā),沒辦法協(xié)同工作。

集中式版本控制系統(tǒng)

svn/cvs都是集中式的版本控制系統(tǒng)

  1. 需要一個(gè)中央服務(wù)器來管理代碼的的版本和備份

  2. 所有的用戶電腦都是從中央服務(wù)器獲取代碼或者是將本地的代碼提交到中央服務(wù)器

  3. 依賴于網(wǎng)絡(luò)環(huán)境,如果連不上中央服務(wù)器,就無法提交和獲取代碼。

  4. 如果中央服務(wù)器宕機(jī),所有人都無法工作。

1d912f52-9082-11ed-bfe3-dac502259ad0.jpg

分布式版本控制系統(tǒng)

git是分布式的版本控制系統(tǒng)。

  1. 需要一臺(tái)服務(wù)器作為代碼倉庫

  2. 每個(gè)用戶電腦都是一個(gè)服務(wù)器(代碼倉庫),并且和代碼倉庫是鏡像的,用戶修改和獲取代碼都是提交到自己的服務(wù)器當(dāng)中。

  3. 不需要網(wǎng)絡(luò)就可以進(jìn)行工作。

  4. 當(dāng)連接網(wǎng)絡(luò)時(shí),用戶可以選擇將自己的服務(wù)器與代碼倉庫進(jìn)行同步。

1d9d328e-9082-11ed-bfe3-dac502259ad0.jpg

二、 git

2.1. git介紹

Git是一款免費(fèi)、開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目。

Git 是 Linus Torvalds 為了幫助管理 Linux 內(nèi)核開發(fā)而開發(fā)的一個(gè)開放源碼的版本控制軟件。

2.2. git安裝

下載地址

#  推薦使用國內(nèi)鏡像下載 http://npm.taobao.org/mirrors/git-for-windows
1. 不要安裝在中文目錄
2. 不要使用桌面管理軟件

安裝很簡單,一直下一步即可。在任意的目錄下右鍵,能夠出現(xiàn)下圖,表示安裝成功了。

1dae170c-9082-11ed-bfe3-dac502259ad0.jpg

git用法方式主要有兩種,

  • git gui,即圖形化界面的方式

  • git bash,命令行的方式

bash是linux系統(tǒng)的命令,因此學(xué)習(xí)git前,我們先學(xué)習(xí)一下bash

  1. 在任意文件夾中,都可以使用右鍵,通過git bash here打開命令行窗口,此時(shí)的路徑就是當(dāng)前目錄。

  2. 窗口上右鍵,通過options-->Text-->select可以調(diào)整字體的大小。

# cd 改變目錄  (change directory)
cd images   #進(jìn)入images文件夾
cd ..      #進(jìn)入上一層目錄
cd ~       #進(jìn)入用戶根目錄

# tab  自動(dòng)補(bǔ)全,當(dāng)我們輸命令或者目錄很長時(shí),可以使用tab鍵進(jìn)行自動(dòng)補(bǔ)全。
# 按兩次tab,會(huì)把所有符合要求的內(nèi)容都列出來。

# pwd 打印當(dāng)前目錄的路徑 (print work directory)
pwd


# ls 展示當(dāng)前目錄列表(list)
ls         # 展示當(dāng)前目錄
ls -a      # 展示全部內(nèi)容,包括隱藏文件
ls -l      # 以列表的形式展示內(nèi)容
ls -al     # 以列表的形式展示所有的內(nèi)容,包括隱藏文件。
ls --help  # 查看ls所有的參數(shù)
ls -l images   # 展示images目錄下的文件,如果沒有寫目錄,默認(rèn)展示當(dāng)前目錄。


# clear reset清屏
clear  # 清除屏幕內(nèi)容,滾動(dòng)條,保留了歷史
reset  # 重置,歷史記錄沒了。


# mkdir  創(chuàng)建一個(gè)文件夾 (make directory)
mkdir css          # 創(chuàng)建一個(gè)css的文件夾
mkdir css img js   # 創(chuàng)建了三個(gè)文件夾

# rmdir  刪除一個(gè)空的文件夾(沒啥用)
rmdir img   # 刪除文件夾

# touch  創(chuàng)建文件
touch index.html   #創(chuàng)建了一個(gè)index.html文件
touch css/index.css # 在css目錄下創(chuàng)建idnex.css文件

# rm 刪除一個(gè)文件獲取文件夾
rm index.html # 刪除index.html文件
rm js         # 刪除空的js文件夾
rm -r css     # 遞歸刪除一個(gè)文件夾

# mv 移動(dòng)文件(move)
mv index.html js            # 將html文件移動(dòng)到j(luò)s文件夾中
mv index.html index2.html   # 將index.html重命名為index2.html

# cp 復(fù)制文件(cp)
cp index.html index2.html   # 復(fù)制index.html文件,命名為index2.html
cp -r css css02             # 如果復(fù)制的是文件夾,需要使用-r參數(shù)。

# cat 查看文件全部內(nèi)容
cat index.html
# less 查看文件部分內(nèi)容
less index.html
# q退出查看

2.3. 基本操作

  1. 初始化git倉庫git init

  2. 查看當(dāng)前git倉庫的狀態(tài)git status

  3. 將文件添加到git的暫存區(qū)git add 文件名

  4. 將文件由暫存區(qū)提交到倉庫區(qū)git commit -m '提交說明'

  5. 查看提交日志git log

# 初始化git倉庫,會(huì)在當(dāng)前目錄生成一個(gè)隱藏文件夾 .git  不要去修改這個(gè)文件夾下的任意東西。
git init

# 查看git的狀態(tài) ,如果此時(shí)新建一個(gè)文件,那么這個(gè)文件是沒有被追蹤的,說白了git還沒有管理這個(gè)新建的文件
git status 

# 讓git管理這個(gè)新建的文件
git add index.html

# 讓文件由暫存區(qū)提交到倉庫區(qū)。此時(shí)文件才真正的被git管理了。
# 如果提交日志亂碼,右鍵-->options-->Text-->將編碼改成utf-8
git commit -m '第一次提交'

# 查看提交日志
git log

2.4. 配置郵箱和用戶名

如果第一次使用git,會(huì)要求設(shè)置用戶名和郵箱

# git config  user.name 你的目標(biāo)用戶名
# git config  user.email 你的目標(biāo)郵箱名
# 這種配置方式只有在當(dāng)前倉庫生效
git config user.name shuaige
git config user.email 669104343@qq.com

# 可以使用--global參數(shù),配置全局的用戶名和郵箱,這樣別的git倉庫就不需要重新配置了。
# 如果同時(shí)配置了局部的和全局的,那么局部的用戶名和郵箱將會(huì)生效。
git config  --global user.name shuaige
git config  --global user.email 669104343@qq.com

# 查看配置信息
git config --list

2.5. git的工作原理

1dc21518-9082-11ed-bfe3-dac502259ad0.png

2.6. git命令詳解

2.6.1. git add(重點(diǎn))

  • 作用:將文件由 工作區(qū) 添加到 暫存區(qū),暫存文件

  • 命令:

git git add 文件名

  • 例如:git add index.html

  • git add --all或者git add -A或者git add .(簡寫) 添加所有文件

  • git add a.txt b.txt同時(shí)添加兩個(gè)文件

  • git add *.js添加當(dāng)前目錄下的所有js文件

2.6.2. git checkout 文件名

  • 作用:暫存區(qū)的內(nèi)容恢復(fù)到工作區(qū)。

  • git checkout 1.txt將暫存區(qū)中1.txt文件恢復(fù)到工作區(qū)

2.6.3. git commit(重點(diǎn))

  • 作用:將文件由 暫存區(qū) 添加到 倉庫區(qū)

  • git commit -m "提交說明"

2.6.4. git status

  • 作用:查看文件的狀態(tài)

  • 命令:git status

  • 命令:git stauts -s簡化日志輸出格式

2.6.5. git log

  • 作用:查看提交日志

  • git log只能查看當(dāng)前head以及以前的日志

  • git log --oneline簡潔的日志信息

  • git reflog查看所有的提交變更日志

2.6.6. git reset

  • 作用:版本回退,將代碼恢復(fù)到已經(jīng)提交的某一個(gè)版本中。

  • git reset --hard 版本號(hào)將代碼回退到某個(gè)指定的版本(版本號(hào)只要有前幾位即可)

  • git reset --hard head~1

將版本回退到上一次提交

  • ~1:上一次提交

  • ~2:上上次提交

  • ~0:當(dāng)前提交

2.7. git忽視文件

在倉庫中,有些文件是不想被git管理的,比如數(shù)據(jù)的配置密碼、寫代碼的一些思路等。git可以通過配置從而達(dá)到忽視掉一些文件,這樣這些文件就可以不用提交了。

  • 在倉庫的根目錄創(chuàng)建一個(gè).gitignore的文件,文件名是固定的。

  • 將不需要被git管理的文件路徑添加到.gitignore

# 忽視idea.txt文件
idea.txt

# 忽視.gitignore文件
.gitignore

# 忽視css下的index.js文件
css/index.js

# 忽視css下的所有的js文件
css/*.js

# 忽視css下的所有文件
css/*.*
# 忽視css文件夾
css

三、 git分支操作

分支就是科幻電影里面的平行宇宙,當(dāng)你正在電腦前努力學(xué)習(xí)Git的時(shí)候,另一個(gè)你正在另一個(gè)平行宇宙里努力學(xué)習(xí)SVN。另外,搜索公眾號(hào)Linux中文社區(qū)后臺(tái)回復(fù)“私房菜”,獲取一份驚喜禮包。

如果兩個(gè)平行宇宙互不干擾,那對(duì)現(xiàn)在的你也沒啥影響。不過,在某個(gè)時(shí)間點(diǎn),兩個(gè)平行宇宙合并了,結(jié)果,你既學(xué)會(huì)了Git又學(xué)會(huì)了SVN!

3.1. 為什么要有分支?

  • 如果你要開發(fā)一個(gè)新的功能,需要2周時(shí)間,第一周你只能寫50%代碼,如果此時(shí)立即提交,代碼沒寫完,不完整的代碼會(huì)影響到別人無法工作。如果等代碼寫完再提交,代碼很容易丟失,風(fēng)險(xiǎn)很大。

  • 有了分支,你就可以創(chuàng)建一個(gè)屬于自己的分支,別人看不到,也不影響別人,你在自己的分支上工作,提交到自己的分支上,等到功能開發(fā)完畢,一次性的合并到原來的分支。這樣既安全,又不影響他人工作。

  • 在工作過程中,經(jīng)常會(huì)碰到多任務(wù)并行開發(fā)的情況,使用分支就能很好的避免任務(wù)之間的影響。

  • 其他版本工具比如svn,cvs中也有分支這個(gè)概念,但是這些工具中的分支操作非常的慢,形同擺設(shè)。

3.2. 分支操作的命令

3.2.1. 創(chuàng)建分支

  • git branch 分支名稱創(chuàng)建分支,分支中的代碼,在創(chuàng)建時(shí)與當(dāng)前分支的內(nèi)容完全相同。

  • git在第一次提交時(shí),就有了一個(gè)叫master的主分支。

3.2.2. 查看分支

  • git branch可以查看所有的分支,

  • 在當(dāng)前分支的前面會(huì)有一個(gè)*

3.2.3. 切換分支

  • git checkout 分支名稱切換分支

  • 在當(dāng)前分支的任何操作,都不會(huì)影響到其他的分支,除非進(jìn)行了分支合并。

  • 切換分支之前,必須保證代碼已經(jīng)提交了

3.2.4. 創(chuàng)建并切換分支

  • git checkout -b 分支名稱創(chuàng)建并切換分支

3.2.5. 刪除分支

  • git branch -d 分支名稱可以刪除分支

  • 注意:不能在當(dāng)前分支刪除當(dāng)前分支,需要切換到其他分支才能刪除。

  • 注意:master分支是可以刪除的,但是不推薦那么做。

3.2.6. 合并分支

  • git merge 分支名稱將其他分支的內(nèi)容合并到當(dāng)前分支。

  • master分支中執(zhí)行git merge devdev分支中的代碼合并到master分支

3.3. git分支的工作原理

1dea96a0-9082-11ed-bfe3-dac502259ad0.png

3.4. git合并沖突

  • 對(duì)于同一個(gè)文件,如果有多個(gè)分支需要合并時(shí),容易出現(xiàn)沖突。

  • 合并分支時(shí),如果出現(xiàn)沖突,只能手動(dòng)處理,再次提交,一般的作法,把自己的代碼放到?jīng)_突代碼的后面即可。

四、遠(yuǎn)程倉庫

所有的程序員都可以通過遠(yuǎn)程倉庫來進(jìn)行版本的共享,達(dá)到所有人的代碼一致的效果。

4.1. 遠(yuǎn)程倉庫相關(guān)的命令

4.1.1. git push

  • 作用:將本地代碼提交到遠(yuǎn)程倉庫

  • git push 倉庫地址 master在代碼提交到遠(yuǎn)程倉庫,注意master分支必須寫,不能省略

  • 例子:git push git@github.com:hucongcong/test.git master如果第一次使用,需要填寫github的用戶名和密碼

4.1.2. git pull

  • 作用:將遠(yuǎn)程的代碼下載到本地

  • git pull 代碼地址將遠(yuǎn)程的代碼中master分支下載到本地

  • 通常在push前,需要先pull一次。

4.1.3. git clone

  • 作用:克隆遠(yuǎn)程倉庫的代碼到本地

  • git clone 倉庫地址 自定義本地倉庫名將整個(gè)倉庫克隆到本地

4.1.4. git remote

每次push和pull操作都需要帶上遠(yuǎn)程倉庫的地址,非常的麻煩,我們可以給倉庫地址設(shè)置一個(gè)別名

  • git remote add 倉庫別名 倉庫地址

使用倉庫別名替代倉庫地址。倉庫別名相當(dāng)于一個(gè)變量,倉庫地址就是對(duì)應(yīng)的值。

  • git remote add hucc git@github.com:hucongcong/test.git設(shè)置了一個(gè)hucc的倉庫別名,以后push和pull都可以不用倉庫地址,而用hucc

  • git remote remove hucc刪除hucc這個(gè)倉庫別名。

  • git remote查看所有的倉庫別名

  • 如果使用了git clone命令從遠(yuǎn)程倉庫獲取下來的,那么這個(gè)本地倉庫會(huì)自動(dòng)添加一個(gè) origin的遠(yuǎn)程地址,指向的就是克隆的遠(yuǎn)程地址。

4.2. github

git與github沒有直接的關(guān)系。

  • git是一個(gè)版本控制工具。

  • github是一個(gè)代碼托管平臺(tái),是git的一個(gè)遠(yuǎn)程代碼倉庫。

  • 將來工作時(shí),公司會(huì)有自己的代碼倉庫。

github官網(wǎng)

開源中國-git 碼云

1. gitHub是一個(gè)面向開源及私有軟件項(xiàng)目的托管平臺(tái),因?yàn)橹恢С謌it 作為唯一的版本庫格式進(jìn)行托管,故名gitHub。
2. github免費(fèi),代碼所有人都能看到,但是只有你自己能修改。付費(fèi)的可以隱藏。

在github上創(chuàng)建一個(gè)項(xiàng)目,獲取到倉庫的地址。然后就可以將本地的代碼推送到遠(yuǎn)程的服務(wù)器上。

4.3. SSH免密碼登陸

(對(duì)稱加密與非對(duì)稱加密)

每次push代碼,都需要輸入用戶名跟密碼,非常的麻煩。因此我們可以配置一個(gè)SSH免密碼登陸。

  • github為了賬戶的安全,需要對(duì)每一次push請(qǐng)求都要驗(yàn)證用戶的身份,只有合法的用戶才可以push

  • 使用ssh可以實(shí)現(xiàn)免密碼操作(不需要使用密碼)

4.3.1. SSH免密碼登錄配置

  • 1 創(chuàng)建SSH Key:ssh-keygen -t rsa

  • 2 在文件路徑C:用戶當(dāng)前用戶名找到.ssh文件夾

  • 3 文件夾中有兩個(gè)文件:

  • 私鑰:id_rsa

  • 公鑰:id_rsa.pub

  • 4 在github -> settings -> SSH and GPG keys頁面中,新創(chuàng)建SSH key

  • 5 粘貼 公鑰id_rsa.pub內(nèi)容到對(duì)應(yīng)文本框中

  • 5 在github中新建倉庫或者使用現(xiàn)在倉庫,拿到git@github.com:用戶名/倉庫名.git

  • 6 此后,再次SSH方式與github“通信”,不用輸入密碼確認(rèn)身份了

五、idea集成git

5.1.idea配置git

首先,確保本地已經(jīng)安裝過git客戶端,idea會(huì)進(jìn)行自動(dòng)檢測,如果沒有,或者想進(jìn)行手動(dòng)調(diào)整,需要在這里重新配置。配置成功之后可以通過點(diǎn)擊Test按鈕測試是否OK!

1e05e144-9082-11ed-bfe3-dac502259ad0.jpg

5.2:idea上傳項(xiàng)目到本地倉庫

1e318b96-9082-11ed-bfe3-dac502259ad0.jpg

1e4e686a-9082-11ed-bfe3-dac502259ad0.png

選中指定項(xiàng)目右鍵,選擇Git將項(xiàng)目添加到版本控制,然后使用Commit Directory提交項(xiàng)目到本地倉庫。另外,搜索公眾號(hào)技術(shù)社區(qū)后臺(tái)回復(fù)“算法”,獲取一份驚喜禮包。

1e699a7c-9082-11ed-bfe3-dac502259ad0.jpg

1e75b186-9082-11ed-bfe3-dac502259ad0.jpg

1e83804a-9082-11ed-bfe3-dac502259ad0.jpg

5.3:將本地倉庫項(xiàng)目推送到遠(yuǎn)程倉庫

1e9c1718-9082-11ed-bfe3-dac502259ad0.jpg

1ec62526-9082-11ed-bfe3-dac502259ad0.png

1ec62526-9082-11ed-bfe3-dac502259ad0.png

1eeda25e-9082-11ed-bfe3-dac502259ad0.jpg

注意:如果沒有配置ssh公鑰,第一次本地推送,需要輸入GitHub或gitee遠(yuǎn)程倉庫用戶名密碼。

5.4:idea設(shè)置git忽略部分文件

0、安裝.ignore插件

點(diǎn)擊File->Settings ,找到Plugins搜索ignore,然后install,OK重啟idea

1efef540-9082-11ed-bfe3-dac502259ad0.jpg

1、創(chuàng)建項(xiàng)目,在項(xiàng)目中添加.gitignore文件

1f1d6d7c-9082-11ed-bfe3-dac502259ad0.jpg


															

1f34c396-9082-11ed-bfe3-dac502259ad0.png

1f63577e-9082-11ed-bfe3-dac502259ad0.png

建議.gitignore文件內(nèi)容

######################################################################
# Build Tools
.gradle
/build/
!gradle/wrapper/gradle-wrapper.jar

target/
!.mvn/wrapper/maven-wrapper.jar

######################################################################
# IDE
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
out
gen

### NetBeans ###
nbproject/private/
build/*
nbbuild/
dist/
nbdist/
.nb-gradle/

######################################################################
# Others
*.log
*.xml.versionsBackup

!*/build/*.java
!*/build/*.html
!*/build/*.xml
# .gitignore文件內(nèi)容編寫規(guī)則
*.a       # 忽略所有 .a 結(jié)尾的文件
!lib.a    # 但 lib.a 除外
/TODO     # 僅僅忽略項(xiàng)目根目錄下的 TODO 文件,不包括 subdir/TODO
build/    # 忽略 build/ 目錄下的所有文件
doc/*.txt # 會(huì)忽略 doc/notes.txt 但不包括 doc/server/arch.txt

2、創(chuàng)建本地倉庫

$ git init

3、創(chuàng)建個(gè)人分支

$ git checkout -b dev

4、添加文件到版本控制,提交到本地倉庫

$ git add .
$ git commit -m "first commit"

5、推送到遠(yuǎn)程倉庫

$ git push  https://gitee.com/liyunyi/ssm.git dev

6、合并分支推送到主分支

$ git checkout master
$ git merge dev
$ git push https://gitee.com/liyunyi/ssm.git master

5.5:克隆遠(yuǎn)程倉庫項(xiàng)目到本地

1f85f40a-9082-11ed-bfe3-dac502259ad0.png

1f9d5dc0-9082-11ed-bfe3-dac502259ad0.png

附件:命令大全

1fb11252-9082-11ed-bfe3-dac502259ad0.png

  • Workspace:工作區(qū)

  • Index / Stage:暫存區(qū)

  • Repository:倉庫區(qū)(或本地倉庫)

  • Remote:遠(yuǎn)程倉庫

1、倉庫

# 在當(dāng)前目錄新建一個(gè)Git代碼庫
$ git init

# 新建一個(gè)目錄,將其初始化為Git代碼庫
$ git init [project-name]

# 下載一個(gè)項(xiàng)目和它的整個(gè)代碼歷史
$ git clone [url]

2、配置

# 顯示當(dāng)前的Git配置
$ git config --list

# 編輯Git配置文件
$ git config -e [--global]

# 設(shè)置提交代碼時(shí)的用戶信息
$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"

3、增加/刪除文件

# 添加指定文件到暫存區(qū)
$ git add [file1] [file2] ...

# 添加指定目錄到暫存區(qū),包括子目錄
$ git add [dir]

# 添加當(dāng)前目錄的所有文件到暫存區(qū)
$ git add .

# 添加每個(gè)變化前,都會(huì)要求確認(rèn)
# 對(duì)于同一個(gè)文件的多處變化,可以實(shí)現(xiàn)分次提交
$ git add -p

# 刪除工作區(qū)文件,并且將這次刪除放入暫存區(qū)
$ git rm [file1] [file2] ...

# 停止追蹤指定文件,但該文件會(huì)保留在工作區(qū)
$ git rm --cached [file]

# 改名文件,并且將這個(gè)改名放入暫存區(qū)
$ git mv [file-original] [file-renamed]

4、代碼提交

# 提交暫存區(qū)到倉庫區(qū)
$ git commit -m [message]

# 提交暫存區(qū)的指定文件到倉庫區(qū)
$ git commit [file1] [file2] ... -m [message]

# 提交工作區(qū)自上次commit之后的變化,直接到倉庫區(qū)
$ git commit -a

# 提交時(shí)顯示所有diff信息
$ git commit -v

# 使用一次新的commit,替代上一次提交
# 如果代碼沒有任何新變化,則用來改寫上一次commit的提交信息
$ git commit --amend -m [message]

# 重做上一次commit,并包括指定文件的新變化
$ git commit --amend [file1] [file2] ...

5、分支

# 列出所有本地分支
$ git branch

# 列出所有遠(yuǎn)程分支
$ git branch -r

# 列出所有本地分支和遠(yuǎn)程分支
$ git branch -a

# 新建一個(gè)分支,但依然停留在當(dāng)前分支
$ git branch [branch-name]

# 新建一個(gè)分支,并切換到該分支
$ git checkout -b [branch]

# 新建一個(gè)分支,指向指定commit
$ git branch [branch] [commit]

# 新建一個(gè)分支,與指定的遠(yuǎn)程分支建立追蹤關(guān)系
$ git branch --track [branch] [remote-branch]

# 切換到指定分支,并更新工作區(qū)
$ git checkout [branch-name]

# 切換到上一個(gè)分支
$ git checkout -

# 建立追蹤關(guān)系,在現(xiàn)有分支與指定的遠(yuǎn)程分支之間
$ git branch --set-upstream [branch] [remote-branch]

# 合并指定分支到當(dāng)前分支
$ git merge [branch]

# 選擇一個(gè)commit,合并進(jìn)當(dāng)前分支
$ git cherry-pick [commit]

# 刪除分支
$ git branch -d [branch-name]

# 刪除遠(yuǎn)程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

6、標(biāo)簽

# 列出所有tag
$ git tag

# 新建一個(gè)tag在當(dāng)前commit
$ git tag [tag]

# 新建一個(gè)tag在指定commit
$ git tag [tag] [commit]

# 刪除本地tag
$ git tag -d [tag]

# 刪除遠(yuǎn)程tag
$ git push origin :refs/tags/[tagName]

# 查看tag信息
$ git show [tag]

# 提交指定tag
$ git push [remote] [tag]

# 提交所有tag
$ git push [remote] --tags

# 新建一個(gè)分支,指向某個(gè)tag
$ git checkout -b [branch] [tag]

7、查看信息

# 顯示有變更的文件
$ git status

# 顯示當(dāng)前分支的版本歷史
$ git log

# 顯示commit歷史,以及每次commit發(fā)生變更的文件
$ git log --stat

# 搜索提交歷史,根據(jù)關(guān)鍵詞
$ git log -S [keyword]

# 顯示某個(gè)commit之后的所有變動(dòng),每個(gè)commit占據(jù)一行
$ git log [tag] HEAD --pretty=format:%s

# 顯示某個(gè)commit之后的所有變動(dòng),其"提交說明"必須符合搜索條件
$ git log [tag] HEAD --grep feature

# 顯示某個(gè)文件的版本歷史,包括文件改名
$ git log --follow [file]
$ git whatchanged [file]

# 顯示指定文件相關(guān)的每一次diff
$ git log -p [file]

# 顯示過去5次提交
$ git log -5 --pretty --oneline

# 顯示所有提交過的用戶,按提交次數(shù)排序
$ git shortlog -sn

# 顯示指定文件是什么人在什么時(shí)間修改過
$ git blame [file]

# 顯示暫存區(qū)和工作區(qū)的差異
$ git diff

# 顯示暫存區(qū)和上一個(gè)commit的差異
$ git diff --cached [file]

# 顯示工作區(qū)與當(dāng)前分支最新commit之間的差異
$ git diff HEAD

# 顯示兩次提交之間的差異
$ git diff [first-branch]...[second-branch]

# 顯示今天你寫了多少行代碼
$ git diff --shortstat "@{0 day ago}"

# 顯示某次提交的元數(shù)據(jù)和內(nèi)容變化
$ git show [commit]

# 顯示某次提交發(fā)生變化的文件
$ git show --name-only [commit]

# 顯示某次提交時(shí),某個(gè)文件的內(nèi)容
$ git show [commit]:[filename]

# 顯示當(dāng)前分支的最近幾次提交
$ git reflog

8、遠(yuǎn)程同步

# 下載遠(yuǎn)程倉庫的所有變動(dòng)
$ git fetch [remote]

# 顯示所有遠(yuǎn)程倉庫
$ git remote -v

# 顯示某個(gè)遠(yuǎn)程倉庫的信息
$ git remote show [remote]

# 增加一個(gè)新的遠(yuǎn)程倉庫,并命名
$ git remote add [shortname] [url]

# 取回遠(yuǎn)程倉庫的變化,并與本地分支合并
$ git pull [remote] [branch]

# 上傳本地指定分支到遠(yuǎn)程倉庫
$ git push [remote] [branch]

# 強(qiáng)行推送當(dāng)前分支到遠(yuǎn)程倉庫,即使有沖突
$ git push [remote] --force

# 推送所有分支到遠(yuǎn)程倉庫
$ git push [remote] --all

9、撤銷

# 恢復(fù)暫存區(qū)的指定文件到工作區(qū)
$ git checkout [file]

# 恢復(fù)某個(gè)commit的指定文件到暫存區(qū)和工作區(qū)
$ git checkout [commit] [file]

# 恢復(fù)暫存區(qū)的所有文件到工作區(qū)
$ git checkout .

# 重置暫存區(qū)的指定文件,與上一次commit保持一致,但工作區(qū)不變
$ git reset [file]

# 重置暫存區(qū)與工作區(qū),與上一次commit保持一致
$ git reset --hard

# 重置當(dāng)前分支的指針為指定commit,同時(shí)重置暫存區(qū),但工作區(qū)不變
$ git reset [commit]

# 重置當(dāng)前分支的HEAD為指定commit,同時(shí)重置暫存區(qū)和工作區(qū),與指定commit一致
$ git reset --hard [commit]

# 重置當(dāng)前HEAD為指定commit,但保持暫存區(qū)和工作區(qū)不變
$ git reset --keep [commit]

# 新建一個(gè)commit,用來撤銷指定commit
# 后者的所有變化都將被前者抵消,并且應(yīng)用到當(dāng)前分支
$ git revert [commit]

# 暫時(shí)將未提交的變化移除,稍后再移入
$ git stash
$ git stash pop

10、其他

# 生成一個(gè)可供發(fā)布的壓縮包
$ git archive

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    6630

    瀏覽量

    110658
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9206

    瀏覽量

    85564
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4793

    瀏覽量

    68703

原文標(biāo)題:10、其他

文章出處:【微信號(hào):技術(shù)讓夢想更偉大,微信公眾號(hào):技術(shù)讓夢想更偉大】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    版本控制系統(tǒng)Helix Core 2024.2增強(qiáng)功能:與OpenTelemetry協(xié)議集成、Delta同步和傳輸?shù)?/a>

    【Helix Core 2024.2新增功能】Helix Core 2024.2版本擁有眾多旨在提高團(tuán)隊(duì)效率、優(yōu)化工作流程的增強(qiáng)功能: 通過新的OpenTelemetry協(xié)議(OTLP)集成,團(tuán)隊(duì)
    的頭像 發(fā)表于 01-03 16:03 ?94次閱讀
    <b class='flag-5'>版本</b><b class='flag-5'>控制系統(tǒng)</b>Helix Core 2024.2增強(qiáng)功能:與OpenTelemetry協(xié)議集成、Delta同步和傳輸?shù)? />    </a>
</div>                            <div   id=

    SVN十問:一文帶你了解Subversion歷史、使用挑戰(zhàn)及替代方案Perforce Helix Core

    Subversion (SVN) 作為開源的集中式版本控制系統(tǒng),已無法滿足現(xiàn)代化的數(shù)據(jù)管理與版本控制需求。越來越多的團(tuán)隊(duì)開始轉(zhuǎn)向更快速、更安全、更可擴(kuò)展的
    的頭像 發(fā)表于 12-27 16:09 ?134次閱讀
    SVN十問:一文帶你了解Subversion歷史、使用挑戰(zhàn)及替代方案Perforce Helix Core

    Flexus X 實(shí)例 Docker+Jenkins+gitee 實(shí)現(xiàn) CICD 自動(dòng)化部署 - 解放你的雙手~

    這一前沿解決方案,為您的 C# Web API 項(xiàng)目注入前所未有的敏捷動(dòng)力。通過集成 Docker 容器化技術(shù)、Jenkins 持續(xù)集成/持續(xù)部署(CICD)平臺(tái),以及 Gitee 高效版本控制系統(tǒng)
    的頭像 發(fā)表于 12-26 18:19 ?180次閱讀
    Flexus X 實(shí)例 Docker+Jenkins+gitee 實(shí)現(xiàn) CICD 自動(dòng)化部署 - 解放你的雙手~

    龍智直播預(yù)告:揭示現(xiàn)代化數(shù)據(jù)管理與版本控制優(yōu)勢、從SVN遷移到Helix Core的實(shí)踐指導(dǎo)、遷移步驟等

    2025年1月9日(周四)14:00-14:45,Perforce中國授權(quán)合作伙伴-龍智將在線直播,分享為何您的傳統(tǒng)數(shù)據(jù)管理與版本控制系統(tǒng)需要升級(jí)、Perforce Helix Core的顯著優(yōu)勢,以及如何遷移到Helix Core等實(shí)用見解,以為您的數(shù)據(jù)管理與
    的頭像 發(fā)表于 12-16 15:35 ?124次閱讀
    龍智直播預(yù)告:揭示現(xiàn)代化數(shù)據(jù)管理與<b class='flag-5'>版本</b><b class='flag-5'>控制</b>優(yōu)勢、從SVN遷移到Helix Core的實(shí)踐指導(dǎo)、遷移步驟等

    VSS的工作原理解析

    VSS(Visual SourceSafe)是微軟公司開發(fā)的一款版本控制系統(tǒng),主要用于軟件開發(fā)過程中的代碼管理。 1. VSS概述 Visual SourceSafe(VSS)是一個(gè)基于文件的版本
    的頭像 發(fā)表于 12-13 16:09 ?246次閱讀

    VSS遇到的常見錯(cuò)誤及解決方法

    Visual SourceSafe(VSS)是一個(gè)版本控制系統(tǒng),由微軟開發(fā),用于跟蹤文件和項(xiàng)目的歷史記錄。盡管VSS已經(jīng)有些過時(shí),但仍有一些團(tuán)隊(duì)在使用它。以下是一些VSS用戶可能遇到的常見錯(cuò)誤及其
    的頭像 發(fā)表于 12-13 16:08 ?216次閱讀

    Perforce演講回顧(下):版本控制系統(tǒng)Helix Core的常見使用誤區(qū)及解決辦法、實(shí)用工具及新功能介紹

    日前,Perforce攜手合作伙伴龍智一同亮相UnrealFest2024上海站,分享HelixCore版本控制系統(tǒng)及其協(xié)作套件的強(qiáng)大功能與最新動(dòng)態(tài),助力游戲創(chuàng)意產(chǎn)業(yè)加速前行。Perforce
    的頭像 發(fā)表于 10-08 16:18 ?394次閱讀
    Perforce演講回顧(下):<b class='flag-5'>版本</b><b class='flag-5'>控制系統(tǒng)</b>Helix Core的常見使用誤區(qū)及解決辦法、實(shí)用工具及新功能介紹

    Perforce演講回顧(上):從UE項(xiàng)目Project Titan,看Helix Core在大型游戲開發(fā)中的版本控制與集成使用策略

    日前,Perforce攜手合作伙伴龍智一同亮相UnrealFest2024上海站,分享HelixCore版本控制系統(tǒng)及其協(xié)作套件的強(qiáng)大功能與最新動(dòng)態(tài),助力游戲創(chuàng)意產(chǎn)業(yè)加速前行。Perforce
    的頭像 發(fā)表于 10-08 16:15 ?418次閱讀
    Perforce演講回顧(上):從UE項(xiàng)目Project Titan,看Helix Core在大型游戲開發(fā)中的<b class='flag-5'>版本</b><b class='flag-5'>控制</b>與集成使用策略

    嵌入式開發(fā)常用軟件有哪些?

    微軟開發(fā)且跨平臺(tái)的免費(fèi)源代碼編輯器。這個(gè)軟件支持語法高亮,代碼自動(dòng)補(bǔ)全,代碼重構(gòu),查看定義功能,并且內(nèi)置了命令行工具和Git版本控制系統(tǒng)。用戶可以更改主題和鍵盤快捷方式實(shí)現(xiàn)個(gè)性化設(shè)置。也可以通過內(nèi)置
    發(fā)表于 09-09 15:22

    pytorch環(huán)境搭建詳細(xì)步驟

    、創(chuàng)建虛擬環(huán)境、安裝PyTorch及其依賴庫、配置PyCharm等。 一、安裝Anaconda Anaconda是一個(gè)開源的Python和R語言的分布式版本控制系統(tǒng),旨在簡化包管理和部署。它包含
    的頭像 發(fā)表于 08-01 15:38 ?851次閱讀

    現(xiàn)場總線控制系統(tǒng)與集散控制系統(tǒng)的對(duì)比

    在工業(yè)自動(dòng)化領(lǐng)域中,現(xiàn)場總線控制系統(tǒng)(FCS)和集散控制系統(tǒng)(DCS)是兩個(gè)重要的控制系統(tǒng)架構(gòu)。它們各自具有獨(dú)特的特點(diǎn)和優(yōu)勢,并在不同的應(yīng)用場景中發(fā)揮著關(guān)鍵作用。本文將對(duì)這兩種控制系統(tǒng)
    的頭像 發(fā)表于 06-27 14:11 ?2157次閱讀

    前饋控制系統(tǒng)與反饋控制系統(tǒng)的區(qū)別

    在工業(yè)自動(dòng)化領(lǐng)域中,控制系統(tǒng)是確保生產(chǎn)過程穩(wěn)定、高效運(yùn)行的關(guān)鍵。其中,前饋控制系統(tǒng)和反饋控制系統(tǒng)是兩種常見的控制策略。它們各自具有獨(dú)特的工作原理和優(yōu)勢,適用于不同的應(yīng)用場景。本文將對(duì)前
    的頭像 發(fā)表于 06-17 11:45 ?4048次閱讀

    開環(huán)控制系統(tǒng)與閉環(huán)控制系統(tǒng)的區(qū)別

    控制系統(tǒng)中,開環(huán)控制系統(tǒng)和閉環(huán)控制系統(tǒng)是兩種基本且重要的類型。它們?cè)诮Y(jié)構(gòu)、工作原理、性能特點(diǎn)以及應(yīng)用場景等方面存在顯著的差異。本文將對(duì)這兩種控制系統(tǒng)進(jìn)行詳細(xì)的比較和分析,以便讀者能更
    的頭像 發(fā)表于 06-13 15:00 ?9873次閱讀

    PLC控制系統(tǒng)與繼電器控制系統(tǒng)的比較

      在工業(yè)自動(dòng)化和控制領(lǐng)域中,PLC(Programmable Logic Controller,可編程邏輯控制器)控制系統(tǒng)和繼電器控制系統(tǒng)是兩種常見的
    的頭像 發(fā)表于 06-06 11:33 ?3010次閱讀

    克服PLC編程的難題—基于Git的軟件

    Git是一種分布式版本控制系統(tǒng),它可以記錄文件的修改歷史和版本變化,并可以支持多人協(xié)同開發(fā)。
    的頭像 發(fā)表于 01-22 09:30 ?971次閱讀
    克服PLC編程的難題—基于Git的軟件
    主站蜘蛛池模板: 精品久久中文字幕有码| 亚洲粉嫩美白在线| 男女牲交全过程免费播放| 男总裁憋尿PLAY灌尿BL| 人妻免费久久久久久久了| 少妇大荫蒂毛多毛大| 亚洲精品久久久一区| 胸太大被男同桌吃好爽| 又黄又猛又爽大片免费| WWW国产精品人妻一二三区| 国产精品久久久久久久久久影院 | 曰本少妇高潮久久久久久| 夫妻主vk| 久久精品国产男包| 欧美美女性生活| 午夜福利合集1000在线| 影888午夜理论不卡| 国产精品青草久久福利不卡| 欧美97色伦综合网| 亚洲乱码AV久久久久久久| 成人国产在线不卡视频| 精品无码三级在线观看视频| 色偷偷成人网免费视频男人的天堂 | 无罩看奶禁18| 阿娇和冠希13分钟在线观看| 国产在线亚洲v天堂a| 免费看黄色小说| 亚洲视频在线观看视频| 白丝美女被狂躁免费漫画| 狼群资源网中文字幕| 天龙八部慕容属性加点| [高清无码] 波多野结衣| 成人国内精品久久久久影院| 麻美ゆま夫の目の前で犯| 我的好妈妈BD免费观看| 3D漫画H精品啪啪无码| 国产精品亚洲专一区二区三区| 伦理 电影在线观看| 亚洲zooz人禽交xxxx| 国产成人精品视频播放| 免费一级毛片在线观看|