国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

git倉庫與本地暫存區(qū)的同步問題

這篇具有很好參考價值的文章主要介紹了git倉庫與本地暫存區(qū)的同步問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

向下同步

對于遠程倉庫的項目,初始化一個配置文件,配置遠程倉庫及相關信息,賦值遠程倉庫的地址,使用git pull命令即可拉取倉庫代碼。

git pull [remote_addr]

該部分完成向下同步

向上同步

向上同步時會遇到很多的問題,比較順利的是add,commit,push沒有障礙。

git add .

項目文件添加到工作區(qū)

git commit -m "msg"

項目文件添加到暫存區(qū)

git push [remote_addr] [remote_git]:[local_git]

項目文件推送到遠程倉庫

如果遇到障礙一般會遇到兩個層面的障礙:

  1. 工作區(qū)與暫存區(qū)同步

git一般都有.gitignore用戶屏蔽非必要文件。工作區(qū)是未和git產(chǎn)生聯(lián)系的目錄,此時還未進入git版本管理,.gitignore可以選擇那個文件將會被提交到緩沖區(qū)。

.gitignore文件的使用方法 首先,在你的工作區(qū)新建一個名稱為.gitignore的文件。 然后,把要忽略的文件名填進去,Git就會自動忽略這些文件。github上有一些常用的忽略文件

使用gitignore文件實現(xiàn)工作區(qū)與緩存區(qū)的文件篩選。

在git代碼提交時首先通過git add將命令添加到緩沖區(qū),這個步驟在有些ide中會自動完成。只有先提交到緩存區(qū)的代碼才會進入git版本記錄。

git工作區(qū)可以理解為開發(fā)者可以看得見的,任意編輯的文件,例如如下文件夾

git倉庫與本地暫存區(qū)的同步問題,# Git,git
git倉庫與本地暫存區(qū)的同步問題,# Git,git
這里的所有內容都是工作區(qū)的內容,通過使用了git add命令將文件并使用gitignore篩選后提交到緩存區(qū)。

需要將那么些文件添加到工作區(qū)可以使用如下命令:

git add *  # 將工作區(qū)所有修改添加到暫存區(qū)
git add .  # 將工作區(qū)所有修改添加到暫存區(qū)
git add <file-name>  # 將指定文件添加到暫存區(qū)
git add *.js  # 提交所有 .js 格式文件
git add -f <file-name>  # 強制添加 指定文件添加到暫存區(qū)

# 注:<file-name> 指的是文件的名稱

在commit時一般將所有文件提交,所以git add最好時有選擇性的提交。

如下初始化一個git倉庫將所有內容添加到工作區(qū)中
git倉庫與本地暫存區(qū)的同步問題,# Git,git
git status查看狀態(tài)
git倉庫與本地暫存區(qū)的同步問題,# Git,git
此時代碼已經(jīng)被提交到緩沖區(qū)了。

如果gitignore漏寫導致提交了一些無關代碼該如何撤回或者刪除呢?

git reset命令撤銷緩存文件

使用git reset命令撤銷.idea文件

git倉庫與本地暫存區(qū)的同步問題,# Git,git
git reset命令

git reset <file-name>   # 從暫存區(qū)恢復指定到工作區(qū)
git reset  .          # 從暫存區(qū)恢復所有文件到工作區(qū)
git reset --hard        # 把暫存區(qū)的修改退回到工作區(qū)

git reset撤銷就是恢復未使用git add命令之前。
這里會遇到的問題是git commit后git reset會導致本地倉庫和緩存區(qū)不一樣,該問題在會面講解。

git reset是撤回commit的操作也就是撤回本地倉庫的提交,由于緩存區(qū)(git add)和本地倉庫(git commit)是聯(lián)級操作的因此再git rest也能對緩存區(qū)撤回(簡單來水就是reset是撤回commit的,由于緩存區(qū)和本地倉庫要是聯(lián)級操作,沒有commit直接撤回了add的內容)

git restore命令是專屬用來撤銷緩存區(qū)代碼的,也就是返回git add之前的狀態(tài)。

該命令又分兩種情況,緩存區(qū)的內容和本地倉庫內容是否一致,如果對文件增加了新的功能話,比本地倉庫內容多,再git restore是就需要考慮是否保留這些內容。

git restore --staged將本地倉庫的內容撤銷到緩存區(qū)并保留修改
git restore將本地倉庫內容撤銷到緩存區(qū)不保留修改

git restore就是撤回git add提交。

例如,git add添加新文件

git倉庫與本地暫存區(qū)的同步問題,# Git,git
git resotre撤回并保留工作區(qū)修改,如果不用–staged那么新追加的代碼就消失了
git倉庫與本地暫存區(qū)的同步問題,# Git,git
撤銷了緩存:
git倉庫與本地暫存區(qū)的同步問題,# Git,git

????????git resetgit restore相似之處在于他們都能撤回緩存區(qū)內容,也就是git add的內容,(reset是由于聯(lián)級操作完成);不同之處在于rest還可以操作本地倉庫即(commit的內容),后者只能操作緩存區(qū)。

git倉庫與本地暫存區(qū)的同步問題,# Git,git
看上圖,查看本地倉庫沒有.idea/etcd.iml文件(沒有commit),使用git reset命令撤回了緩存區(qū)的該文件Untracked fiels出現(xiàn)了該文件。

git倉庫與本地暫存區(qū)的同步問題,# Git,git
如上圖,說明git restore并不能撤回本地倉庫的文件。

git倉庫與本地暫存區(qū)的同步問題,# Git,git
如上圖所示,git restore撤回緩存區(qū)內容。

git status????用于查看工作區(qū)、暫存區(qū)的狀態(tài),會經(jīng)常用到。

git rm --cached <file-name> 命令將本地暫存區(qū)的內容移除,直接刪除文件的git索引,從而刪除文件跟蹤。

git倉庫與本地暫存區(qū)的同步問題,# Git,git
git rm直接將本地倉庫和緩存區(qū)的內容直接刪除了。

  1. 暫存區(qū)與本地倉庫同步

git commit將暫存區(qū)的內容提交到本地倉庫,如下未當前緩存區(qū)內容:

git倉庫與本地暫存區(qū)的同步問題,# Git,git
git commit將緩存區(qū)全部內容提交,因此在工作區(qū)提交到緩存區(qū)是需要認證篩選。如下,git commit命令提交代碼

git倉庫與本地暫存區(qū)的同步問題,# Git,git

git commit <file-name> ... "相關的記錄信息"   # 將緩存區(qū)的指定文件提交到本地倉庫
git commit -m "相關的記錄信息"   	  # 將緩存區(qū)的所有文件提交到本地倉庫

如果緩存區(qū)沒有仔細篩選,導致不必要文件提交到了本地倉庫,git也提供了git revert撤銷提交。

git revert HEAD

git倉庫與本地暫存區(qū)的同步問題,# Git,git

注意revert命令會回溯到前一個commit的版本,如果只有一個版本,那么本地文件也會消失,注意revert時一定要大于一個版本。

git rm刪除本地倉庫的文件

git倉庫與本地暫存區(qū)的同步問題,# Git,git

git提交了多余的內容或者想刪除之前提交的內容,可以使用該命令,對本地倉庫的操作都是聯(lián)級操作,對本地倉庫的操作和緩存區(qū)是同步的。

git rm --cached注意一定要攜帶-cached不然會將本地文件一起刪除了,除非完全不需要了。

把.idea文件直接刪除了是無效的,因為此時的刪除只是把工作區(qū)刪除了,緩存區(qū)還在,本地倉庫。這次文件仍然在commit的本地倉庫,在寫新代碼是新代碼不斷從工作區(qū)git add,再git commit,被merge到commit的本地倉庫。如下圖

git倉庫與本地暫存區(qū)的同步問題,# Git,git

直接刪除只是將工作區(qū)的文件刪除了,緩存區(qū)和本地倉庫仍然存在,可查看,git status查看緩存區(qū)文件狀態(tài)
git ls-files -c查看本地倉庫文件狀態(tài)git ls-files -h獲取更多命令

git倉庫與本地暫存區(qū)的同步問題,# Git,git
git倉庫與本地暫存區(qū)的同步問題,# Git,git

git直接檢索出了文件目錄下被刪除的文件,也給出了方法(git add重新添加,git rm刪除工作區(qū)文件,git restore)

git ls-files --help查看有關本地文件的命令

git倉庫與本地暫存區(qū)的同步問題,# Git,git

通過git rm刪除緩存區(qū)內容,git rm命令比較特殊是鏈級刪除,首先本來開發(fā)者就要刪除文件目錄的文件,又要刪除工作區(qū)和暫存區(qū),rm就很好完成該工作,一次性刪除三個位置的文件,分三種情況:
(未commit,已add,只刪除add的部分;以commit,以add,全部刪除;未commit,未add,刪除不了,未與git所有)

不會出現(xiàn)以commit,未add的情況,應為commit和add是關聯(lián)的,一樣的。另外刪除均將文件目錄的文件也刪除了。

由于git在提交時都是從緩存區(qū)全部提交,因此在刪除本地倉庫時緩存區(qū)也同步刪除了,這也是必須的,不然下次再提交如果緩存區(qū)還存在又被提交上去了,一次類推,對本地倉庫的操作都是和緩存區(qū)同步的,這些有git系統(tǒng)自動完成。

git revert是通過切換不同的提交版本號實現(xiàn)代碼回溯,git rm是直接刪除文件,git reset是撤回緩存區(qū)提交的內容,這些命令各有不同但都能實現(xiàn)代碼回溯功能,而且緩存區(qū)隨本地倉庫自動變化。

更多問題請移步論壇Git問答

極客筆記? - 深入淺出打磨IT筆記文章來源地址http://www.zghlxwxcb.cn/news/detail-634989.html

到了這里,關于git倉庫與本地暫存區(qū)的同步問題的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • git本地新建分支,并同步到遠程倉庫

    1、新建本地分支 2、在遠程倉庫中新建分支,名稱保持一致 3、查看本地分支 4、轉到本地分支 5、刪除本地分支 6、同步本地分支至遠程倉庫 7、如果有錯誤,提示版本不同步,如回退版本后修改了內容并需要同步,這時候可以使用強制推送

    2024年02月11日
    瀏覽(35)
  • 利用git同步vscode本地庫到GitHub倉庫

    利用git同步vscode本地庫到GitHub倉庫

    參考: VsCode安裝和配置c/c++環(huán)境(超完整,小白專用) 參考: git的安裝與配置教程-超詳細版 (1)GitHub賬號注冊: 略(比較簡單的,僅需要一個郵箱即可)。 (2)GitHub倉庫建立: 登陸進去以后,就可以看到如下界面: 點擊“New”即可創(chuàng)建一個新的庫。 或者在“個人中心”→

    2024年02月04日
    瀏覽(20)
  • 【小吉帶你學Git】Git命令(用戶簽名,本地庫,暫存區(qū),文件,版本 等命令)

    【小吉帶你學Git】Git命令(用戶簽名,本地庫,暫存區(qū),文件,版本 等命令)

    ??專欄【Git】 ??喜歡的詩句:更喜岷山千里雪 三軍過后盡開顏。 ??音樂分享【如愿】 ??歡迎并且感謝大家指出小吉的問題?? 簽名的作用是區(qū)分不同的操作者身份,能夠確定本次提交是誰做的 git首次安裝必須設置一下用戶簽名,否則無法提交代碼 這里設置用戶簽名和登

    2024年02月12日
    瀏覽(45)
  • 【git】解決本地倉庫與遠程倉庫不一致問題

    【git】解決本地倉庫與遠程倉庫不一致問題

    目錄 方法1:(未驗證) 方法2:(驗證過) 方法3:常規(guī) 1.將遠程倉庫代碼拉取到本地作為本地的一個新的分支 temp 2.將這個temp的分支與我們的主分支對比查看有什么不同,有那些沖突 3.將新的temp分支與本地主分支合并 4.重新提交本地主分支到遠程倉庫 5、刪除分支 方法4、未進

    2023年04月19日
    瀏覽(25)
  • Git詳解(帶圖) --- 本地電腦的工作區(qū)、暫存區(qū)、本地倉與遠程倉

    Git詳解(帶圖) --- 本地電腦的工作區(qū)、暫存區(qū)、本地倉與遠程倉

    在 git 的豐富功能中,工作區(qū) (Work Space)、暫存區(qū) (Index/Staging?Area)、本地倉庫 (Local Repository) 和遠程倉庫 (Remote Repository) 被認為是四大核心概念。今天讓我們深入了解這些神秘的組成部分,揭開它們的面紗,讓你能夠更好地利用Git來管理項目。 上圖相信大家再熟悉不過,這是我

    2024年01月18日
    瀏覽(20)
  • git:一個本地倉庫綁定多個遠程的方法以及遇到的問題

    綁定方法見知乎大佬:本地Git倉庫關聯(lián)多個遠程倉庫的兩種方法 一般情況下,沒人這么搞! 但是公司遷移git倉庫階段,xx云環(huán)境上的gitlab要有操作記錄,不然影響整體評分,這就不得一個本地倉庫關聯(lián)了原來的倉庫+新的xx云環(huán)境的倉庫 我才用的是上述文章里的第二種方式:

    2024年02月09日
    瀏覽(22)
  • 【git踩坑記錄】git push時本地分支名與遠程倉庫分支名不一致引發(fā)的問題

    【git踩坑記錄】git push時本地分支名與遠程倉庫分支名不一致引發(fā)的問題

    我在github上新創(chuàng)建的遠程倉庫默認分支名為main,而本地倉庫默認分支名為master,當我push代碼的時候碰到了若干坑… 先在github上快速創(chuàng)建個倉庫,有個readme文件,遠程倉庫分支是main分支 然后本地創(chuàng)建兩個文件夾,假裝是兩臺主機,我們先在張三文件夾里寫點東西 在張三的文

    2024年02月05日
    瀏覽(43)
  • 解決git克隆到本地的倉庫文件夾不顯示紅色感嘆號、綠色對號等圖標的問題

    解決git克隆到本地的倉庫文件夾不顯示紅色感嘆號、綠色對號等圖標的問題

    ? ? ? 電腦有時候重啟或者別的什么原因導致本地倉庫不顯示綠勾或者紅色感嘆號的符號 第一步: win加R然后輸入regedit打開注冊表 第二步: 按下面路徑打開 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerShellIconOverlayIdentifiers 找到如下圖在Tortoise相關文件 然后重命名,原有

    2024年02月11日
    瀏覽(87)
  • PyCharm環(huán)境下Git與Gitee聯(lián)動:本地與遠程倉庫操作實戰(zhàn)及常見問題解決方案

    PyCharm環(huán)境下Git與Gitee聯(lián)動:本地與遠程倉庫操作實戰(zhàn)及常見問題解決方案

    寫在前面 :本博客僅作記錄學習之用,部分圖片來自網(wǎng)絡,如需引用請注明出處,同時如有侵犯您的權益,請聯(lián)系刪除! 在軟件開發(fā)中,版本控制是一個不可或缺的工具。隨著項目的增長和團隊的擴大,管理源代碼的變更、協(xié)作和跟蹤變得愈發(fā)重要。Git正是為了滿足這些需

    2024年04月25日
    瀏覽(25)
  • git 不同倉庫 同步

    if_git_pull_or_checkoutBranch=$1 ##參數(shù)2: 復深藍代碼分支 fulan_branch=$2 ##參數(shù)2: 項目名稱 project_name=$2 ##參數(shù)3: 上海證券代碼分支 securities_branch=$3 #復深藍代碼路徑 fulanlinuxPath=‘/d/git-work/fulan’; securitieslinuxPath=‘/d/git-work/sh-securities’; #開啟擴展通配符 shopt -s extglob fulan_branch1=$2 fu

    2024年04月09日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包