成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

工作效率翻倍:Git實用命令集錦

云計算 分布式
什么是版本控制?我真的需要嗎?版本控制是一種記錄若干文件內容變化,以便將來查閱特定版本修訂情況的系統。什么是分布式版本控制系統分布式版本控制系統( Distributed Version Control System,簡稱 DVCS )。

1、了解版本控制

什么是版本控制?我真的需要嗎?版本控制是一種記錄若干文件內容變化,以便將來查閱特定版本修訂情況的系統。

什么是分布式版本控制系統分布式版本控制系統( Distributed Version Control System,簡稱 DVCS )。

在這類系統中,像 Git,Mercurial,Bazaar 以及 Darcs 等,客戶端并不只提取最新版本的文件快照,而是把原始的代碼倉庫完整地鏡像下來。這么一來,任何一處協同工作用的服務器發生故障,事后都可以用任何一個鏡 像出來的本地倉庫恢復。因為每一次的提取操作,實際上都是一次對代碼倉庫的完整備份

2、Git常用命令

git-系統配置

git config -l

git-global配置

git config --global --list
# 可以設全局公用識別的 郵箱和用戶名
git config --global user.name 'xxxxxx'
git config --global user.email 'xxxxx@xxx.com'

項目單獨git配置

# 查看
git config --list
# 為項目設置單獨的user.name和user.email
git config user.name 'xxxxxx'
git config user.email 'xxxxx@xxx.com'

Git初始化

本地初始化

git init

遠程拉取

git clone 遠程倉庫地址

本地倉庫與遠程倉庫的關聯

# 本地-建立關聯-遠程
git remote add origin 遠程倉庫地址
# 本地-取消關聯-遠程
git remote rm origin

Git保存和提交

查看狀態

git status

查看所有文件修改詳情

git diff HEAD

查看指定文件的修改詳情

git diff HEAD ./README.md

添加保存

".": 所有修改文件

git add .
或
git add ./home.vue

添加保存說明(提交到本地倉庫)

git commit -m '對這次保存添加說明描述'

拉取代碼

多人協作開發的時候,提交之前先拉取下代碼,解決可能未來的沖突

git pull origin 分支名

提交代碼

git push origin 分支名

Git提交日志

查看提交記錄

查看曾經的提交記錄 可以顯示所有提交過的版本信息,不包括已經被刪除的 commit 記錄和 reset 的操作

git log --pretty=oneline

控制顯示條數

git log -30 --pretty=oneline

圖形化展示查看當前分支的版本演變信息

git log --graph

按作者名字查看提交記錄

git log --author="John"

搜索提交歷史,根據關鍵詞

git log -S 關鍵詞

按日期

git log --after="2023-2-1"

搜索過濾合并提交

git log --no-merges 
or 
git log --merges

按提交信息

比如說,你的團隊規范要求在提交信息中包括相關的issue編號,你可以用下面這個命令來顯示這個 issue 相關的所有提交

git log --grep="JRA-224:"

查看當前 版本標志位

git reflog是Git操作的一道安全保障,它能夠記錄幾乎所有本地倉庫的改變,包括所有分支的commit提交,以及已經被刪除的commit

git reflog

Git回退到某個版本

回退到上一個版本

git reset --hard HEAD^ # 回退上一個版本
git reset --hard HEAD~3  # 回退上上上一個版本 
git reset --hard bae128  # 回退到某個版本回退點之前的所有信息。

HEAD 說明:

  • HEAD 表示當前版本
  • HEAD^ 上一個版本
  • HEAD^^ 上上一個版本
  • HEAD^^^ 上上上一個版本
  • 以此類推...

可以使用 ~數字表示

  • HEAD~0 表示當前版本
  • HEAD~1 上一個版本
  • HEAD^2 上上一個版本
  • HEAD^3 上上上一個版本
  • 以此類推...

Git分支指令

查看素有分支

git branch -a

切換分支

git checkout 分支名

創建本地分支

git branch 新分支名
# 創建并切換到新分支
git checkout -b 新分支名

根據指定版本號創建分支

git checkout -b 分支名 提交ID

推送本地分支到遠程倉庫

git push origin 新分支名

刪除本地某個分支

這是一個“安全”操作,因為 Git 會阻止我們刪除具有未合并更改的分支

git branch -d 分支名

強制刪除本地某個分支

即使它有未合并的更改。如果想永久丟棄與特定開發線相關的所有提交,則可以使用此命令

git branch -D 分支名

刪除遠程倉庫的某個分支

git push origin --delelte 分支名

顯示所有遠程倉庫

查看倉庫源名稱

git remote -v

更新遠程分支列表

git remote update origin(倉庫源名稱) --prune

推送所有分支到遠程倉庫

git push origin(倉庫源名稱) --all

強行推送當前分支到遠程倉庫,即使有沖突

git push origin(倉庫源名稱) --force

Git合并分支

想將develop分支合并到master分支

git checkout master # 首先切換到master分支上
git pull origin master # 如果是多人開發的話 需要把遠程master上的代碼pull下來
git merge --no-ff develop # 然后我們把develop分支的代碼合并到master上

關于 git merge develop 和 git merge --no-ff develop 的區別

git merge develop

==== >  結果就會變成

          A---B---C develop
         /         master
D---E---F

執行此句話后,因為 develop 就在 master 的下游,所以直接移動了 master 的指針,master 和 develop 都指向了 C

而如果執行了 git merge --no-ff feature 的話,是下面的結果:

git merge --no-ff develop

==== >  結果就會變成

          A---B---C develop
         /         \
D---E---F-----------G master

由于 --no-ff 禁止了快進,所以會生成一個新的提交,master 指向 G。

從合并后的代碼來看,結果其實是一樣的,區別就在于 --no-ff 會讓 Git 生成一個新的提交對象, 通常我們把 master 作為主分支,上面存放的都是比較穩定的代碼,而 feature 是用來開發特性的,上面會存在許多零碎的提交,快進式合并會把 feature 的提交歷史混入到 master 中,攪亂 master 的提交歷史

Git標簽

查看tag列表

git tag -l

本地添加tag

git tag -a 標簽名 -m '版本說明'

查看tag信息

git show 標簽名

本地刪除某個tag

git tag -D 標簽名
or
git tag -d 標簽名

推送本地tag到遠程倉庫

git push origin 標簽名

刪除遠程倉庫tag

git push origin --delete 標簽名

小記

  • cmd中使用log命令,不會自動退出,需要手動按下英文狀態下的q退出

Git常見錯誤

1、修改最后一次提交消息 - 提交消息寫錯了

(按 i 進行編輯,編輯后,按 ESC,如果保存退出使用 :wq,只退出輸入 :q,如果出錯,退出不保存使用 :qa!)

git commit --amend #該命令將打開編輯器,并允許更改最后一次提交消息

2、Git 撤回 commit,但未 push 的內容

git log
git reset e102c05227bca7517554777f589f130305b69427 #保留提交之前的更改到工作區

3、讓單個文件回退到指定版本

git log vue.config.js #拿到文件提交記錄ID
git checkout e102c05227bca7517554777f589f130305b69427(commitID) vue.config.js  #將文件還原到你想要還原的版本

4、解決沖突

只要所有開發者都遵守這個規則,那么解決沖突是一件非常容易的事情

  1. 例如我的分支叫做dev分支。我把代碼修改完成了,現在不知道有沒有沖突。
  2. 在 dev 分支里面,執行命令git merge origin/master,把遠程的master分支合并到當前dev分支中。如果沒有任何報錯,那么直接轉到第5步。
  3. 如果有沖突,根據提示,把沖突解決,保存文件。然后執行命令git add xxx把你修改的文件添加到緩存區。然后執行命令git commit -m "xxx"添加 commit 信息。
  4. 執行如下命令,切換到 master 分支:git checkout master。
  5. 執行命令git pull確保當前 master 分支是最新代碼。
  6. 把dev分支的代碼合并回 master 分支:git merge dev。
  7. 提交代碼:git push。
責任編輯:武曉燕 來源: 一安未來
相關推薦

2015-07-22 17:32:22

mysql常用命令

2022-08-24 14:42:51

Linux技巧

2023-04-18 23:39:07

VS Code代碼編輯器插件

2023-09-12 23:15:08

Shell腳本

2024-11-19 15:28:15

2022-04-29 08:15:40

Python技巧Max

2024-04-10 14:08:00

人工智能開發工具

2021-06-25 10:20:07

Linux技巧命令

2021-07-16 23:32:28

工具職場軟件

2024-09-26 06:21:59

Python代碼

2021-04-19 17:12:53

網站工具

2021-09-11 22:51:38

Windows 10Windows微軟

2021-07-19 09:18:55

IDEA插件工具

2016-12-29 12:42:45

Linux操作命令

2021-01-12 15:17:40

命令Linux操作系統

2010-03-05 13:00:39

Ubuntu命令

2021-09-30 16:25:20

物聯網人工智能IoT

2023-08-01 08:01:27

工具安全漏洞

2021-12-10 08:39:50

SQLPLUS Oracle 數據庫

2020-07-28 09:30:12

開發技能代碼
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜视频在线观看网址 | 国产一区二区在线免费观看 | 国产精品欧美精品日韩精品 | av在线免费看网址 | 午夜激情视频 | 超碰地址 | 求个av网址| 福利网站在线观看 | 99色综合 | 欧洲精品码一区二区三区免费看 | 成人一区在线观看 | 亚洲精品 在线播放 | 成人网av | 欧美成视频 | 成人国产在线视频 | 日韩精品中文字幕一区二区三区 | 久久99精品久久久久婷婷 | 一区视频 | 欧美在线一区二区三区 | 7777久久 | 午夜精品一区二区三区在线视频 | 综合色播 | 超碰综合| 91麻豆蜜桃一区二区三区 | 亚洲人成人一区二区在线观看 | 天天干天天插天天 | 欧美天堂一区 | 亚洲免费一区二区 | 玖玖在线精品 | 精品1区 | 久久久不卡网国产精品一区 | 免费观看毛片 | 国产视频综合 | 欧美精品一级 | 91精品国产高清一区二区三区 | 日韩中文久久 | 婷婷丁香激情 | 免费在线观看一区二区三区 | 日韩成人av在线播放 | 国产乱码久久久 | 毛片免费观看 |