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

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

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

用Git命令解決常見場景記錄

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2023-12-20 09:44 ? 次閱讀

本文主要歸納一下git的學(xué)習(xí)記錄,在開發(fā)期間發(fā)現(xiàn)了git在sourcetree的處理不是很好,對于多選文件的丟棄這點不是很方便,所以做一個記錄,由于項目中有新建的文件,所以被識別為未跟蹤的文件,但我不需要這些文件了,想要批量處理掉,所以記錄一下用命令行一次性丟棄未跟蹤文件的方法,同時也記錄一下撤銷push請求的git記錄。

Untrace類型文件

"Untracked files" 指的是在版本控制系統(tǒng)中(如 Git)的代碼庫中存在但尚未被版本控制追蹤的文件。這些文件包括在代碼庫中,但 Git 不會監(jiān)視它們的更改或?qū)⑺鼈儼诎姹練v史記錄中。

當(dāng)你在 Git 倉庫中創(chuàng)建新文件時,這些文件默認(rèn)是未追蹤的。未追蹤的文件不會被 Git 記錄,因此它們不會出現(xiàn)在版本歷史記錄中,也不會被包含在提交中。

查詢未跟蹤文件

使用命令行 丟棄 untrace(未跟蹤)的文件,這里在sourcetree中有六個未跟蹤的文件,在sourcetree中可以使用右鍵來對不需要跟蹤的文件進行丟棄,但是一個個的去丟棄比較麻煩,我也試過用全選加丟棄快捷鍵來進行丟棄,但效果不是很好

wKgaomWCR0eAd0hYAACVPjKhKQE565.jpg

所以建議使用git命令來進行文件的丟棄

5cc9872a-9e67-11ee-8b88-92fbcf53809c.jpg

先用git status來檢查當(dāng)前項目的修改狀態(tài)

可以看到有這么幾個標(biāo)紅的文件,并且類型為Untracked files,就是未跟蹤的文件

清除未跟蹤文件

想要清除未跟蹤的文件 一般是用 git clean 來進行清除,用于從工作目錄中刪除未追蹤的文件,但是創(chuàng)建文件的時候,可能同時創(chuàng)建了文件夾,所以git也提供了一個后綴來修飾命令,加上-d表示刪除未被追蹤的目錄。

如果不加-d,則git clean只會刪除未被追蹤的文件而保留未被追蹤的目錄。

-f: 表示強制執(zhí)行,即不會提示確認(rèn),直接刪除未追蹤的文件。

因為我用git status 提前查詢了未跟蹤的文件,所以這里我直接刪除掉加上-f

5cde1e74-9e67-11ee-8b88-92fbcf53809c.jpg

清除后重新看下git status來看下當(dāng)前分支的情況。

5cf31dce-9e67-11ee-8b88-92fbcf53809c.jpg

可以看到當(dāng)前分支是沒有改動的。

撤回已push代碼

在日常開發(fā)可能會經(jīng)常遇到某些功能實現(xiàn)了,產(chǎn)品又不需要的場景

5cfd15ae-9e67-11ee-8b88-92fbcf53809c.jpg

當(dāng)前這提交是我不需要的,但是已經(jīng)push到分支上面去了,如果來解決這問題,需要我們把已經(jīng)提交的代碼撤回

如果是在自己的項目的開發(fā)環(huán)境可以直接執(zhí)行

git reset --hard HEAD

將當(dāng)前分支的 HEAD 移動到前一個提交,即刪掉本地最后一個commit

然后再使用

git push --force-with-lease

推送到遠程刪掉最后一個commit。

git cherry-pick HASH 最后本地恢復(fù)最后一個commit。

git reset --hard和git push --force-with-lease是一種強制推送的操作,會修改遠程倉庫的歷史記錄。在多人協(xié)作的項目中,強制推送可能會影響其他開發(fā)者的工作

所以上面的方法并不是最推薦的

使用git revert撤銷提交

先通過git log 來查找最后一次提交的hash

git log

找到對應(yīng)的hash值來進行

到命令行中直接執(zhí)行


git revert 
git revert bc4b4198b43ae601f05d25d34f0cff65240525f4

5d118f3e-9e67-11ee-8b88-92fbcf53809c.jpg

然后再進行提交


git push origin 

其中是你要撤銷的提交的哈希值,是你的分支名稱。

5d2b61fc-9e67-11ee-8b88-92fbcf53809c.jpg

對比一下可以看到先后兩次提交

5d3f5d56-9e67-11ee-8b88-92fbcf53809c.jpg

相比起之前的強制提交會更加的友好,不會因為其他開發(fā)者拉取分支導(dǎo)致分支刪除,然后產(chǎn)生沖突。

總結(jié)

本次總結(jié)了兩個日常開發(fā)經(jīng)常可能會遇到的git操作場景,減少使用強制提交,給每個提交都留下記錄,避免開發(fā)過程中的開發(fā)者直接的分支沖突,是一個很關(guān)鍵的點。

鏈接:https://juejin.cn/post/7313862981029232655







審核編輯:劉清

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

    關(guān)注

    0

    文章

    196

    瀏覽量

    15720

原文標(biāo)題:用Git命令解決常見場景

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Git常用命令總結(jié)

    在之前的文章中,我們討論了一些初學(xué)者必備的 Git 命令。然而,這些命令僅僅觸及了 Git 功能的皮毛。
    發(fā)表于 07-21 10:30 ?283次閱讀

    Git常用的超級實用命令

    的一些Git工作流。 1 Git 常用的超級實用命令 1.1 與倉庫相關(guān)的操作 克隆代碼倉庫到本地,開發(fā)必 git clone 查看本地倉
    的頭像 發(fā)表于 10-09 17:19 ?1127次閱讀
    <b class='flag-5'>Git</b>常用的超級實用<b class='flag-5'>命令</b>

    git命令的基本使用

    git config 第一次使用git或者剛安裝的git時,使用此命令設(shè)置身份Name 和 Eamail 地址。并且每次提交時會使用此信息。
    的頭像 發(fā)表于 12-11 13:53 ?873次閱讀

    Git命令之本地分支與遠程分支關(guān)聯(lián)和解除

    的遠程分支被刪除了,那么就會出現(xiàn)你無法使用git pull,和git push命令。使用一個例子說明這個場景。 我們可以使用下面的命令查看自
    的頭像 發(fā)表于 12-15 09:27 ?2933次閱讀
    <b class='flag-5'>Git</b><b class='flag-5'>命令</b>之本地分支與遠程分支關(guān)聯(lián)和解除

    SVN,HG,GIT命令對照

    SVN,HG,GIT是三種常見的版本控制系統(tǒng),本文簡單列出一些相似的操作命令。當(dāng)然,三種系統(tǒng)各有特點,嚴(yán)格的對應(yīng)關(guān)系是沒有的。1,第一次下載,包括源碼和版本庫: svn checkout http
    發(fā)表于 01-13 16:53 ?0次下載

    第一本Git命令教程(六) - 日志

    。有三種 Git 命令可以幫我們查看記錄,痞子衡為大家一一講解: 1. 查看本地歷史提交 git log git log 是最直接的查看歷史
    的頭像 發(fā)表于 12-05 17:22 ?755次閱讀

    Git 命令+原理 程序員必備的基礎(chǔ)

    掌握Git命令是每位程序員必備的基礎(chǔ),之前一直是smartGit工具,直到看到大佬們都是在用Git命令操作的,回想一下,發(fā)現(xiàn)有些
    的頭像 發(fā)表于 11-14 10:01 ?1718次閱讀
    <b class='flag-5'>Git</b> <b class='flag-5'>命令</b>+原理 程序員必備的基礎(chǔ)

    Git常見的誤區(qū)和命令行工具等綜述

    Git常見的誤區(qū)和命令行工具等綜述
    發(fā)表于 08-31 09:51 ?0次下載

    GIT合代碼的經(jīng)典操作場景

    git對于大家應(yīng)該都不太陌生,熟練使用git已經(jīng)成為程序員的一項基本技能,盡管在工作中有諸如 Sourcetree這樣牛X的客戶端工具,使得合并代碼變的很方便。但找工作面試和一些需彰顯個人實力的場景,仍然需要我們掌握足夠多的
    的頭像 發(fā)表于 04-09 16:42 ?1508次閱讀

    Git高效命令的使用技巧

    今天浩道跟大家分享關(guān)于Git高效命令的硬核干貨,掌握這些技巧,使你事半功倍!
    的頭像 發(fā)表于 02-28 16:41 ?894次閱讀

    git rebase與相關(guān)git merge命令比較

    。 #概念 ????首先要理解的是git rebase和git merge解決了同樣的問題。這兩個命令都旨在將更改從一個分支集成到另一個分支 - 它們只是以不同的方式進行。試想一下當(dāng)你開始在專用分支中開發(fā)新功能時另一個團隊成員以
    的頭像 發(fā)表于 05-26 16:22 ?834次閱讀
    <b class='flag-5'>git</b> rebase與相關(guān)<b class='flag-5'>git</b> merge<b class='flag-5'>命令</b>比較

    git命令和參數(shù)

    ? ? 不知道大家平時都是怎么去學(xué)習(xí)git的,要記憶那么多的命令和參數(shù),我個人是不推薦死記硬背的,以往經(jīng)驗證明卷的越瘋狂忘的也越快! 其實簡單的理解工作原理和熟練運用少部分常用命令,日常開發(fā)問題不大
    的頭像 發(fā)表于 05-31 14:22 ?528次閱讀

    Git命令的綜合手冊怎么找

    config 命令的手冊,執(zhí)行 $ git help config 這些命令很棒,因為你隨時隨地可以使用而無需聯(lián)網(wǎng)。 如果你不需要全面的手冊,只需要可用選項的快速參考,那么可以 -
    的頭像 發(fā)表于 07-22 11:02 ?619次閱讀

    git如何記錄每次更新到倉庫

    可以 git status 命令查看哪些文件處于什么狀態(tài)。如果在克隆倉庫后立即使用此命令,會看到類似這樣的輸出: $ git statu
    的頭像 發(fā)表于 07-22 11:11 ?515次閱讀
    <b class='flag-5'>git</b>如何<b class='flag-5'>記錄</b>每次更新到倉庫

    git基本操作命令用法

    基本用法 上面的四條命令在工作目錄、暫存目錄(也叫做索引)和倉庫之間復(fù)制文件。 git add files把當(dāng)前文件放入暫存區(qū)域。 git commit給暫存區(qū)域生成快照并提交。 git
    的頭像 發(fā)表于 09-13 16:29 ?744次閱讀
    <b class='flag-5'>git</b>基本操作<b class='flag-5'>命令</b>用法