在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

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

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

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

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

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

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

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

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

關于版本控制

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

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

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

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

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

  1. 需要一個中央服務器來管理代碼的的版本和備份

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

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

  4. 如果中央服務器宕機,所有人都無法工作。

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

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

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

  1. 需要一臺服務器作為代碼倉庫

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

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

  4. 當連接網(wǎng)絡時,用戶可以選擇將自己的服務器與代碼倉庫進行同步。

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

二、 git

2.1. git介紹

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

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

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)的命令,因此學習git前,我們先學習一下bash

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

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

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

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

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


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


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


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

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

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

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

# mv 移動文件(move)
mv index.html js            # 將html文件移動到js文件夾中
mv index.html index2.html   # 將index.html重命名為index2.html

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

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

2.3. 基本操作

  1. 初始化git倉庫git init

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

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

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

  5. 查看提交日志git log

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

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

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

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

# 查看提交日志
git log

2.4. 配置郵箱和用戶名

如果第一次使用git,會要求設置用戶名和郵箱

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

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

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

2.5. git的工作原理

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

2.6. git命令詳解

2.6.1. git add(重點)

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

  • 命令:

git git add 文件名

  • 例如:git add index.html

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

  • git add a.txt b.txt同時添加兩個文件

  • git add *.js添加當前目錄下的所有js文件

2.6.2. git checkout 文件名

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

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

2.6.3. git commit(重點)

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

  • git commit -m "提交說明"

2.6.4. git status

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

  • 命令:git status

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

2.6.5. git log

  • 作用:查看提交日志

  • git log只能查看當前head以及以前的日志

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

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

2.6.6. git reset

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

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

  • git reset --hard head~1

將版本回退到上一次提交

  • ~1:上一次提交

  • ~2:上上次提交

  • ~0:當前提交

2.7. git忽視文件

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

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

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

# 忽視idea.txt文件
idea.txt

# 忽視.gitignore文件
.gitignore

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

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

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

三、 git分支操作

分支就是科幻電影里面的平行宇宙,當你正在電腦前努力學習Git的時候,另一個你正在另一個平行宇宙里努力學習SVN。另外,搜索公眾號Linux中文社區(qū)后臺回復“私房菜”,獲取一份驚喜禮包。

如果兩個平行宇宙互不干擾,那對現(xiàn)在的你也沒啥影響。不過,在某個時間點,兩個平行宇宙合并了,結果,你既學會了Git又學會了SVN!

3.1. 為什么要有分支?

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

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

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

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

3.2. 分支操作的命令

3.2.1. 創(chuàng)建分支

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

  • git在第一次提交時,就有了一個叫master的主分支。

3.2.2. 查看分支

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

  • 在當前分支的前面會有一個*

3.2.3. 切換分支

  • git checkout 分支名稱切換分支

  • 在當前分支的任何操作,都不會影響到其他的分支,除非進行了分支合并。

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

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

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

3.2.5. 刪除分支

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

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

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

3.2.6. 合并分支

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

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

3.3. git分支的工作原理

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

3.4. git合并沖突

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

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

四、遠程倉庫

所有的程序員都可以通過遠程倉庫來進行版本的共享,達到所有人的代碼一致的效果。

4.1. 遠程倉庫相關的命令

4.1.1. git push

  • 作用:將本地代碼提交到遠程倉庫

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

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

4.1.2. git pull

  • 作用:將遠程的代碼下載到本地

  • git pull 代碼地址將遠程的代碼中master分支下載到本地

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

4.1.3. git clone

  • 作用:克隆遠程倉庫的代碼到本地

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

4.1.4. git remote

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

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

使用倉庫別名替代倉庫地址。倉庫別名相當于一個變量,倉庫地址就是對應的值。

  • git remote add hucc [email protected]:hucongcong/test.git設置了一個hucc的倉庫別名,以后push和pull都可以不用倉庫地址,而用hucc

  • git remote remove hucc刪除hucc這個倉庫別名。

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

  • 如果使用了git clone命令從遠程倉庫獲取下來的,那么這個本地倉庫會自動添加一個 origin的遠程地址,指向的就是克隆的遠程地址。

4.2. github

git與github沒有直接的關系。

  • git是一個版本控制工具。

  • github是一個代碼托管平臺,是git的一個遠程代碼倉庫。

  • 將來工作時,公司會有自己的代碼倉庫。

github官網(wǎng)

開源中國-git 碼云

1. gitHub是一個面向開源及私有軟件項目的托管平臺,因為只支持git 作為唯一的版本庫格式進行托管,故名gitHub。
2. github免費,代碼所有人都能看到,但是只有你自己能修改。付費的可以隱藏。

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

4.3. SSH免密碼登陸

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

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

  • github為了賬戶的安全,需要對每一次push請求都要驗證用戶的身份,只有合法的用戶才可以push

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

4.3.1. SSH免密碼登錄配置

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

  • 2 在文件路徑C:用戶當前用戶名找到.ssh文件夾

  • 3 文件夾中有兩個文件:

  • 私鑰:id_rsa

  • 公鑰:id_rsa.pub

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

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

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

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

五、idea集成git

5.1.idea配置git

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

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

5.2:idea上傳項目到本地倉庫

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

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

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

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

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

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

5.3:將本地倉庫項目推送到遠程倉庫

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遠程倉庫用戶名密碼。

5.4:idea設置git忽略部分文件

0、安裝.ignore插件

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

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

1、創(chuà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 結尾的文件
!lib.a    # 但 lib.a 除外
/TODO     # 僅僅忽略項目根目錄下的 TODO 文件,不包括 subdir/TODO
build/    # 忽略 build/ 目錄下的所有文件
doc/*.txt # 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt

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

$ git init

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

$ git checkout -b dev

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

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

5、推送到遠程倉庫

$ 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:克隆遠程倉庫項目到本地

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:遠程倉庫

1、倉庫

# 在當前目錄新建一個Git代碼庫
$ git init

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

# 下載一個項目和它的整個代碼歷史
$ git clone [url]

2、配置

# 顯示當前的Git配置
$ git config --list

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

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

3、增加/刪除文件

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

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

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

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

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

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

# 改名文件,并且將這個改名放入暫存區(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

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

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

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

5、分支

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

# 列出所有遠程分支
$ git branch -r

# 列出所有本地分支和遠程分支
$ git branch -a

# 新建一個分支,但依然停留在當前分支
$ git branch [branch-name]

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

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

# 新建一個分支,與指定的遠程分支建立追蹤關系
$ git branch --track [branch] [remote-branch]

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

# 切換到上一個分支
$ git checkout -

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

# 合并指定分支到當前分支
$ git merge [branch]

# 選擇一個commit,合并進當前分支
$ git cherry-pick [commit]

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

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

6、標簽

# 列出所有tag
$ git tag

# 新建一個tag在當前commit
$ git tag [tag]

# 新建一個tag在指定commit
$ git tag [tag] [commit]

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

# 刪除遠程tag
$ git push origin :refs/tags/[tagName]

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

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

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

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

7、查看信息

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

# 顯示當前分支的版本歷史
$ git log

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

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

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

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

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

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

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

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

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

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

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

# 顯示工作區(qū)與當前分支最新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]

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

# 顯示當前分支的最近幾次提交
$ git reflog

8、遠程同步

# 下載遠程倉庫的所有變動
$ git fetch [remote]

# 顯示所有遠程倉庫
$ git remote -v

# 顯示某個遠程倉庫的信息
$ git remote show [remote]

# 增加一個新的遠程倉庫,并命名
$ git remote add [shortname] [url]

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

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

# 強行推送當前分支到遠程倉庫,即使有沖突
$ git push [remote] --force

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

9、撤銷

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

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

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

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

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

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

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

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

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

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

10、其他

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

審核編輯 :李倩


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

    關注

    41

    文章

    6741

    瀏覽量

    111644
  • 服務器
    +關注

    關注

    12

    文章

    9596

    瀏覽量

    86997
  • 代碼
    +關注

    關注

    30

    文章

    4880

    瀏覽量

    70032

原文標題:10、其他

文章出處:【微信號:技術讓夢想更偉大,微信公眾號:技術讓夢想更偉大】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何成為一名合格的KaihongOS北向應用開發(fā)工程師

    應用你的知識。從小項目開始,逐步增加項目的復雜性。 代碼審查:參與代碼審查,以提高代碼質(zhì)量和團隊協(xié)作能力。 版本控制:熟練使用 Git 等版本控制系統(tǒng),以便于團隊協(xié)作和代碼管理。 5.
    發(fā)表于 04-23 06:46

    C++學到什么程度可以找工作?

    GDB)、版本控制系統(tǒng)(如Git)、構建工具(如Makefile、CMake),以及IDE或編輯器(如VisualStudio、CLion等)。 7. **項目經(jīng)驗**:擁有實際項目的開發(fā)經(jīng)驗是非
    發(fā)表于 03-13 10:19

    Devart: dbForge Compare Bundle for SQL Server—比較SQL數(shù)據(jù)庫最簡單、最準確的方法

    主要版本控制系統(tǒng)的實時數(shù)據(jù)庫、快照、腳本文件夾、備份和存儲庫。 為什么選擇Data Compare For SQL Server? 自
    的頭像 發(fā)表于 01-17 11:35 ?366次閱讀

    如何成為一名合格的北向應用開發(fā)工程師

    的復雜性。 代碼審查 :參與代碼審查,以提高代碼質(zhì)量和團隊協(xié)作能力。 版本控制 :熟練使用 Git 等版本控制系統(tǒng),以便于團隊協(xié)作和代碼管理。 5. 安全性和隱私 開發(fā)實踐 :學習如何
    發(fā)表于 01-10 10:00

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

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

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

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

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

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

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

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

    VSS的工作原理解析

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

    VSS遇到的常見錯誤及解決方法

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

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

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

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

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

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

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

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

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

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

    在工業(yè)自動化領域中,控制系統(tǒng)是確保生產(chǎn)過程穩(wěn)定、高效運行的關鍵。其中,前饋控制系統(tǒng)和反饋控制系統(tǒng)是兩種常見的控制策略。它們各自具有獨特的工作原理和優(yōu)勢,適用于不同的應用場景。本文將對前
    的頭像 發(fā)表于 06-17 11:45 ?5205次閱讀
    主站蜘蛛池模板: 亚洲天堂视频在线播放 | 久久综合中文字幕 | 特级中国aaa毛片 | 好爽~~~~嗯~~~再快点明星 | 免费a网| 四虎4hu永久在线观看 | 酒色成人网 | 添人人躁日日躁夜夜躁夜夜揉 | a天堂影院 | 国产精品夜夜春夜夜爽 | 九九精品久久久久久噜噜 | 特黄一级黄色片 | 色秀视频免费高清网站 | 日本一级高清不卡视频在线 | 777午夜精品免费播放 | 一级毛片日韩a欧美 | 奇米影视四色首页手机在线 | 久久夜色撩人精品国产 | 看黄网站在线 | 欧美成人天天综合在线视色 | 亚洲第一页视频 | 另类毛片 | 久久人成 | 黄色软件合集 | 欧美深夜 | 97影院理论片手机在线观看 | 正在播放91大神调教偷偷 | 一级做a爰片久久免费 | 一级黄a | 影音先锋五月天 | 国产三级视频 | 欧美.亚洲.日本一区二区三区 | 夜夜春色 | 亚洲swag精品自拍一区 | 成人精品视频一区二区三区 | 91亚洲视频 | 亚洲一区二区精品推荐 | 四虎影视精品 | 精品午夜视频 | 欧美一二三区在线 | 狠狠色噜噜狠狠狠狠五月婷 |