日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

技术与技巧札记

發布時間:2023/11/30 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 技术与技巧札记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux常用命令及技巧:

1cat /proc/version?查看當前內核的版本

? (2)? 掛載nfs文件夾:需要先確認在/etcexports文件,可以用于開發板掛載的文件夾

? ? ? ? mount -o nolock 10.0.22.30:/root/sharednfs /mnt

etcexports文件常見參數:

rw 可讀寫的權限?

ro 只讀的權限

no_root_squash ? NFS 客戶端分享目錄使用者的權限,即如果客戶端使用的是 root用戶,那么對于這個共享的目錄而言,該客戶端就具有 root的權限

sync 資料同步寫入到內存與硬盤當中?

async 資料會先暫存于內存當中,而非直接寫入硬盤

? (3) Vi命令行模式:set nu顯示行號

?? ? ? ? ? ? ? ? ? ? ? ? ? /搜索字符串

? (4) 強制刪除非空的目錄:rm -rf ./hello (強制刪除本地目錄下的hello及其子目錄)

5)在當前目錄及其子目錄中查找字符串:grep -rn "PROC_FS" ./*

./* : 表示路徑為當前目錄.

-r 是遞歸查找

-n 是顯示行號

? ? ? ?

? (6)建立文件的符號鏈接:ln -s ../hello.c ./hello1 ? ?上層目錄中的hello.c在本層目錄中建立符號鏈接hello1

7tar打包壓縮;tar解壓縮解包

? ? ? ? a. 當前目錄下所有文件打包用gzip壓縮: tar -czvf hello.tar.gz? ./*

? ? ? ? b. 當前目錄下的文件解包gzip解壓縮:tar -xzvf hello.tar.gz

? ? ? ? c. 當前目錄下所有文件打包用bzip2壓縮: tar -cjvf hello.tar.bz2? ./*

? ? ? ? d. 當前目錄下的文件解包bzip2解壓縮:tar -xjvf hello.tar.bz2

? (8)查看域名對應IP地址:nslookup www.ismartalarm.com

? (9)ifconfig eth0 down? ? 網卡down

?? ? ifconfig eth0 up ? ? ? 網卡up

?? ? ifconfig -a ? 查看當前機器中所有網絡,包括停止工作的網絡

?? ? ifconfig eth0 10.0.22.30 netmask 255.255.255.0

10)查看nfs服務是否啟用:service nfs status

? (11)查看nfs服務在各個啟動level下的啟用/禁用情況:chkconfig —list | grep ifs

?? ? ? 修改nfs服務在啟動level下的啟用:chkconfig —level 3 nfs on

? (12)查看服務的端口號: catetc/service

? (13) VI 移動到行開頭:0(數字0

? ? ? ? ? ? 移動到行尾:$

? ? ? ? ? ? 移動到文檔開頭:1(或輸入數字到某一行)

? ? ? ? ? ? 移動到文件尾部:G

? ? ? ? ? ? 復制行:yy? ?黏貼:p ?刪除:dd ?撤銷:u ?刪除字符:x

?14gccgdb查看版本:gcc -v

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? gdb -v

?? (15) linux gzip解壓包含符號鏈接文件的gzip壓縮包失敗:

?? ? ? ? Windows共享目錄, fat分區等是不支持linux的符號鏈接;?必須在ext3/4, btrfs等這些分區格式的目錄下解壓

?16touch命令創建文件

?? (17) arp -a 查看接入路由器的MAC

?18tail命令,從指定點開始將文件寫到標準輸出。使用tail命令的-f選項可以方便的查閱正在改變的日志文件,tail -f filename會把filename里最尾部的內容顯示在屏幕上,并且不但刷新,使你看到最新的文件內容。

?? (19) mkdir -p 選項允許你一次性創建多層次的目錄,而不是一次只創建單獨的目錄。如:mkdir -p /var/run

?20printk根據不同優先級的信息可以輸出到控制臺上、/var/log/messages里。其中,對輸出給控制臺的信息有一個特定的優先級 console_loglevel。若優先級小于這個整數值時,則消息才能顯示到控制臺上,否則,消息會顯示在/var/log/messages里。若不加任何優先級選項,則消息默認輸出到/var/log/messages文件中。

?21proc - process information pseudo-file system

? ? ? ? ? 進程信息虛擬文件系統,此目錄中的文件是關于你正在運行的進程詳細信息,如PID等信息。

22)顯示當前文件夾下所有文件的行數:cat*|wc -l

23)顯示當前文件夾下各個文件的行數:ls *|xargs wc -l


24)修改Uboot中的串口波特率:/Ubootinclude/configs/rt2880.h? ?

? ? ? ? ? CONFIG_BAUDRATE

? ? ? ? ? Uboot開機的打印位于:/Ubootlib_mips/board.c


25Vim操作快捷鍵:dd--剪切光標所在行?ndd?連續剪切多行)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? yy--復制光標所在行?nyy?連續復制多行)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? p--黏貼

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? x--刪除光標后面的一個字符

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? X--刪除光標前面的一個字符

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? u--撤銷上一個操作?ctrl+r?可撤銷u的修改)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? .--重復上一個操作

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? v--進入可視模式;選中多行,y--進行復制;p--進行黏貼;d--進行刪除

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? G--跳轉到最后一行

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? nG--跳轉到第n

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? :%s/old/new/g ? ? 整個文件中的old替換為new


26!!可以執行上一個指令

27>以覆蓋的方式重定向輸出(>默認表示1>;還可以將標準錯誤輸出重定向為2>

?? ? ? ? >>以累加的方式重定向輸出(>>默認表示1>>;還可以將標準錯誤輸出重定向為2>>

?? ? ? ? <<<表示標準輸入重定向

(28) ubuntu12.04txt文件亂碼如何解決?

gsettings set org.gnome.gedit.preferences.encodings auto-detected "['UTF-8','GB18030','GB2312','GBK','BIG5','CURRENT','UTF-16’]"

(29)ubuntu terminal配色方案

文字顏色:#708284

背景顏色:#07242E

30)移除所有的.O文件

find? -name “*.o" | xargs rm




volatile關鍵字:

一般說來,volatile用在如下的幾個地方:

1、中斷服務程序中修改的供其它程序檢測的變量需要加volatile

2、多任務環境下各任務間共享的標志應該加volatile

3、存儲器映射的硬件寄存器通常也要加volatile說明,因為每次對它的讀寫都可能有不同意義;



特殊字符:

~ @ # $ ^ & * ( ) - + = [ ] { } ? | . ‘


?TJk@GJyM:AHAw2INr:e*mfGCPN:q4H+ALMm:jMZ6pTk6:+U[kruWB?



const意味著只讀

一個參數既可以是const還可以是volatile嗎?解釋為什么。

?一個指針可以是volatile嗎?解釋為什么。

?下面的函數有什么錯誤:

int square(volatile int *ptr)

{

return *ptr * *ptr;

}

下面是答案:

是的。一個例子是只讀的狀態寄存器。它是volatile因為它可能被意想不到地改變。它是const因為程序不應該試圖去修改它。

?是的。盡管這并不很常見。一個例子是當一個中服務子程序修該一個指向一個buffer的指針時。

?這段代碼有點變態。這段代碼的目的是用來返指針*ptr指向值的平方,但是,由于*ptr指向一個volatile型參數,編譯器將產生類似下面的代碼:

int square(volatile int *ptr)

{

int a,b;

a = *ptr;

b = *ptr;

return a * b;

}

由于*ptr的值可能被意想不到地該變,因此ab可能是不同的。結果,這段代碼可能返不是你所期望的平方值!正確的代碼如下:

long square(volatile int *ptr)

{

int a;

a = *ptr;

return a * a;

}



static關鍵字,意味著不要導出到程序外部


static void? ? /* "static" means don't export the symbol... */

myfunc2()

{

? ? myfunc3();

}



tar壓縮算法:

tar -zcvf /home/xahot.tar.gz /xahot

tar -zcvf 打包后生成的文件名全路徑要打包的目錄

例子:把/xahot文件夾打包后生成一個/home/xahot.tar.gz的文件。


幾種快速清空文件內容的方法:

  $ : > filename #其中的 :是一個占位符,不產生任何輸出.

  $ > filename

  $ echo “” > filename

  $ echo /dev/null > filename

  $ echo > filename

  $ cat /dev/null > filename




mount命令詳解

Baby 鏡像更新:

1.cp /tftpboot/root_uImage /root/sharednfs

2.telnet 登錄板子

3.mount 本地鏡像所在路徑到/mnt

mount -o nolock,rw 10.0.22.18:/root/sharednfs /mnt

4.cd mnt

?? cp? root_uImage /dev/mtdblock4

5.reboot


功能:加載指定的文件系統。?

語法:mount [-afFhnrvVw] [-L<標簽>] [-o<選項>] [-t<文件系統類型>] [設備名] [加載點]?

用法說明:mount可將指定設備中指定的文件系統加載到Linux目錄下(也就是裝載點)。可將經常使用的設備寫入文件/etc/fastab,以使系統在每次啟動時自動加載。mount加載設備的信息記錄在/etc/mtab文件中。使用umount命令卸載設備時,記錄將被清除。?

常用參數和選項:?

-a 加載文件/etc/fstab中設置的所有設備。?

-f 不實際加載設備。可與-v等參數同時使用以查看mount的執行過程。?

-F 需與-a參數同時使用。所有在/etc/fstab中設置的設備會被同時加載,可加快執行速度。?

-h 顯示在線幫助信息。?

-L<標簽>加載文件系統標簽為<標簽>的設備。?

-n 不將加載信息記錄在/etc/mtab文件中。?

-o<選項>指定加載文件系統時的選項。有些選項也可在/etc/fstab中使用。這些選項包括:?

async 以非同步的方式執行文件系統的輸入輸出動作。?

atime 每次存取都更新inode的存取時間,默認設置,取消選項為noatime?

auto 必須在/etc/fstab文件中指定此選項。執行-a參數時,會加載設置為auto的設備,取消選取為noauto?

defaults 使用默認的選項。默認選項為rwsuiddevexecanto nouserasync?

dev 可讀文件系統上的字符或塊設備,取消選項為nodev?

exec 可執行二進制文件,取消選項為noexec?

noatime 每次存取時不更新inode的存取時間。?

noauto 無法使用-a參數來加載。?

nodev 不讀文件系統上的字符或塊設備。?

noexec 無法執行二進制文件。?

nosuid 關閉set-user-identifier(設置用戶ID)set-group-identifer(設置組ID)設置位。?

nouser 使一位用戶無法執行加載操作,默認設置。?

remount 重新加載設備。通常用于改變設備的設置狀態。?

ro 以只讀模式加載。?

rw 以可讀寫模式加載。?

suid 啟動set-user-identifier(設置用戶ID)set-group-identifer(設置組ID)設置位,取消選項為nosuid?

sync 以同步方式執行文件系統的輸入輸出動作。?

user 可以讓一般用戶加載設備。?

??

-r 以只讀方式加載設備。?

-t<文件系統類型>指定設備的文件系統類型。常用的選項說明有:?

minix Linux最早使用的文件系統。?

ext2 Linux目前的常用文件系統。?

msdos MS-DOS FAT?

vfat Win85/98 VFAT?

nfs 網絡文件系統。?

iso9660 CD-ROM光盤的標準文件系統。?

ntfs Windows NT的文件系統。?

hpfs OS/2文件系統。Windows NT 3.51之前版本的文件系統。?

auto 自動檢測文件系統。?

-v 執行時顯示詳細的信息。?

-V 顯示版本信息。?

-w 以可讀寫模式加載設備,默認設置。




mount jffs2 文件系統系統錯誤解決辦法?

分類: Linux2012-09-11 17:37 930人閱讀 評論(0) 收藏 舉報

flashblog

最近在板上mount jffs2時老是出錯,困擾了好像。主要是提示如下錯誤:

Child dir "upf" (ino #26) of dir ino #3 appears to be a hard link
Child dir "param" (ino #21) of dir ino #3 appears to be a hard link

.........................
Child dir "app" (ino #62) of dir ino #6 appears to be a hard link

一堆的這樣問題。搞的頭大。

想不出為什么!!

沒辦法G之。偶然找到一個blog說是flash沒有擦除。fuck earse ,tftp下載,果然正常。

該文主要內容如下:

1.判斷是不是jffs2文件。用UE打開,在前面應該是0x85,0x19 ,如果不是,則是大小端的問題。請在mkfs.jffs2命令上加入-l或者-b

2.如果出現以下錯誤,則是文件系統被覆蓋了。


3.出現以下錯誤。是因為flash不夠干靜。erase

Child dir "upf" (ino #26) of dir ino #3 appears to be a hard link
Child dir "param" (ino #21) of dir ino #3 appears to be a hard link

4.出現以下錯誤。是Flash空間不夠

jffs2_read_dnode() asked for 4096 bytes at 114688 from 3241-byte node
jffs2_read_dnode() asked for 4096 bytes at 118784 from 3241-byte node

順便帶上jffs2的命令格式:

/mkfs.jffs2 -d ./jffs2 -l? -e 0x20000 -o jffs2.img

原文地地址:http://blog.csdn.net/plaris060504/article/details/6031576






glibc libc?


glibc libc 都是 Linux 下的 C函數庫。?

libc Linux 下的 ANSI C 函數庫;glibc Linux下的 GUN C函數庫。?


ANSI C GNU C有什么區別呢??


?? ? ? ANSI C 函數庫是基本的 C語言函數庫,包含了 C語言最基本的庫函數。這個庫可以根據頭文件劃分為 15個部分,其中包括:?

  • <ctype.h>:包含用來測試某個特征字符的函數的函數原型,以及用來轉換大小寫字母的函數原型;
  • <errno.h>:定義用來報告錯誤條件的宏;
  • <float.h>:包含系統的浮點數大小限制;
  • <math.h>:包含數學庫函數的函數原型;
  • <stddef.h>:包含執行某些計算 C所用的常見的函數定義;
  • <stdio.h>:包含標準輸入輸出庫函數的函數原型,以及他們所用的信息;
  • <stdlib.h>:包含數字轉換到文本,以及文本轉換到數字的函數原型,還有內存分配、隨機數字以及其他實用函數的函數原型;
  • <string.h>:包含字符串處理函數的函數原型;
  • <time.h>:包含時間和日期操作的函數原型和類型;
  • <stdarg.h>:包含函數原型和宏,用于處理未知數值和類型的函數的參數列表;
  • <signal.h>:包含函數原型和宏,用于處理程序執行期間可能出現的各種條件;
  • <setjmp.h>:包含可以繞過一般函數調用并返回序列的函數的原型,即非局部跳轉;
  • <locale.h>:包含函數原型和其他信息,使程序可以針對所運行的地區進行修改。
  • 地區的表示方法可以使計算機系統處理不同的數據表達約定,如全世界的日期、時間、美元數和大數字;
  • <assert.h>:包含宏和信息,用于進行診斷,幫助程序調試。
  • 上述庫函數在其各種支持 C 語言的 IDE中都是有的。?


    ?? ? ? GNU C 函數庫是一種類似于第三方插件的東西。由于 Linux是用 C語言寫的,所以 Linux的一些操作是用 C語言實現的,因此,GUN組織開發了一個 C語言的庫以便讓我們更好的利用 C語言開發基于 Linux 操作系統的程序。不過現在的不同的 Linux的發行版本對這兩個函數庫有不同的處理方法,有的可能已經集成在同一個庫里了。?

    查看當前系統的 glibc 版本的方法:?

    (1)/lib/libc.so.6

    (2)ldd - -version


    ? ? ? 錯誤觀點glib前面有個 "g",所以認為 glib GNU的東東;同時認為 glibc glib的一個子集。?

    ? ? ? 其實,glib glibc基本上沒有太大聯系,可能唯一的共同點就是,其都是 C編程需要調用的庫而已。?

    glib Gtk+ 庫和 Gnome 的基礎。glib可以在多個平臺下使用,比如 LinuxUnixWindows等。glib為許多標準的、常用的 C 語言結構提供了相應的替代物。?


    libc 實際上是一個泛指。凡是符合實現了 C標準規定的內容,都是一種 libc

    glibc GNU 組織對 libc 的一種實現。它是 unix/linux的根基之一。

    微軟也有自己的 libc 實現,叫 msvcrt

    嵌入式行業里還常用 uClibc ,是一個迷你版的 libc


    ld-uClibc-0.9.28uclibc下進行動態庫連接的連接器


    uclibc

    計算術語中,uClibc是一個面向嵌入式Linux系統的小型的C標準庫。最初uClibc是為了支持uClinux而開發,這是一個不需要內存管理單元Linux版本,因此適合于單片機系統(uCs;此處"u"是代表"micro"μ羅馬化)

    uClibc 是一個小型的 C庫,應用于嵌入式 Linux系統開發。它基本實現了 glibc的功能,幾乎所有 glibc支持的應用程序都能在 uClibc上運行,這使得應用程序的移植變得相當簡單,只需要使用 uClibc庫重新編譯源代碼就可以了。目前 uClibc主要運行在不帶 MMU的平臺下,支持 alpha, ARM, i386, i960, h8300, m68k, mips/mipsel, PowerPC, SH, SPARC等等。






    uclibcglibc的差別

    uClibcGlibc并不相同,兩者有許多不同之處,而且以下不同有可能給你帶來一些問題。


    1. uClibcGlibc小,雖然uClibcGlibc在已有的接口上是兼容的,而且采用uClibc編譯應用程序比采用Glibc編譯應用程序要更方便,但是uClibc并沒有包括Glibc中的所有接口實現,因此有些應用可能在uClibc中不能編譯。

    2. uClibc在可配置性上比glibc要好。

    3. uClibc并不能保證發布的庫二進制兼容舊版本uClibc庫。當一個新的版本uClibc庫被發布,則可能需要也可能不需要重新編譯應用程序。

    4. Glibc中調用malloc(0),將返回一個有效的指針,然而在uClibc中調用malloc(0),則返回NULL指針。根據在SuSv3中關于malloc(0)的行為的定義,兩個庫的實現都是正確的。對于調用relloc(NULL,0),兩個庫的實現也不同。個人感覺Glibc的如此實現不是特別安全。Glibcmalloc的實現可以通過MALLOC_CHECK_環境變量調節。這個方法主要用于malloc調試。這些擴展的malloc調試特性在uClibc中是不可用的。在Linux上有許多有些的malloc調試功能的庫(如:dmalloc,electric fence,valgrind)Glibc中的擴展的malloc調試功能更好用。因此uClibc中去掉這些功能特性并不會有多大損失。


    5. uClibc沒有提供用于數據接口的庫(libdb)

    6. uClibc不支持NSS(/lib/libnss_*),在這方面Glibc更容易支持不同方式的認證和DNS解析。uClibc僅僅支持采用flat口令文件或者shadow口令文件存儲授權信息。如果需要比這些更復雜的的授權,可以編譯安裝pam

    7. uClibc中的libresolv庫僅僅是一個樁。Glibclibresolv庫中的部分并不是全部的功能uClibc都提供,許多函數都沒有實現。

    8.提供網絡信息服務支持(NIS)libnsl(最初被稱為黃頁YP),被SUN擴展為發明為RPC并用于網絡共享Unix口令文件。個人認為NIS是一個令人厭惡的東西并應該使用。因此,在實現相同的功能情況下采用ldapNIS更有效。uClibc雖然提供一個樁libnsl,但并不支持NIS。我們因此也不提供在Glibc下提供的位于/usr/include/rpcsvc里的頭文件。

    9. uClibc的區域支持并不是100%的完全。正在這方面努力?

    10. uClibc的數據功能函數庫內部僅僅支持long double,設置對于long double的支持也是非常有限。與此對應的只實現了較少的數學函數。如果應用程序采用double類型,則會程序會運行得較好。

    11. uClibclibcrpt庫不支持可重入crypt_r,setkey_rencrypt_r,因為這些也不是SuSv3所規定的。

    12. uClibc直接采用內核的數據類型去定義大多數透明的數據類型。

    13. uClibc支持采用linux內核結構特有的結構體"struct stat"

    14. uClibc的運行時庫librt當前缺少aio接口、全部的時鐘接口和共享內存接口(僅僅實現定時器接口和消息隊列接口)





    MIPS架構的交叉編譯工具問題



    某些MIPS架構的機頂盒提供了六種交叉編譯工具GCC,如下:
    · mipsel-linux-gcc
    · mipsel-linux-uclibc-gcc
    · mipsel-uclibc-gcc
    · mips-linux-gcc
    · mips-linux-uclibc-gcc
    · mips-uclibc-gcc

    這六種有什么區別?分別用于什么情況呢?

    1)首先,mipsmipsel的主要區別在于Big Endian(大端)和Little Endian(小端)結構。
    mips對應的是Big Endian
    mipsel對應的是Little Endian

    2)其次,要明白uclibc庫。
    uclibc庫是面向嵌入式Linux系統開發優化的C語言庫。比GNU C Library更小,但接口兼容,且更易于配置。
    uclibc可運行于標準的以及無MMULinux系統之上,支持i386x86x64ARMAVR32BlackfinH8300M68KMIPSPowerPCSuperHSPARCV850等處理器下列。
    mips-uclibc-gcc表示采用uclibc庫進行編譯的GCC

    3)至于第三點是否帶linux的區別則不清楚,以后再補充吧




    預定義__GNUC__

    ? ? 1 __GNUC__ gcc編譯器編譯代碼時預定義的一個宏。需要針對gcc編寫代碼時,可以使用該宏進行條件編譯。

    ? ? 2 __GNUC__ 的值表示gcc的版本。需要針對gcc特定版本編寫代碼時,也可以使用該宏進行條件編譯。

    ? ? 3 __GNUC__ 的類型是“int”,該宏被擴展后,得到的是整數字面值。可以通過僅預處理,查看宏擴展后的文本。

    示例:

      #include <assert.h>

      #include <stdio.h>

      #include <typeinfo>
      #ifndef __GNUC__

        #error sample for gcc compiler

      #else

        /* use gcc special extension: #warning , __attribute__, etc.? */

      #endif

      int main()?

      { ? ?

        printf("hello gcc %d\n",__GNUC__); ? ?

        assert( typeid(__GNUC__)==typeid(int) ); ? ?

        printf("press Enter to exit\n"); ? ?

        (void)getchar();

      }





    函數名: getenv

    :從環境中取字符串,獲取環境變量的值

    頭文件:stdlib.h

    :char *getenv(char *envvar);

    函數說明:getenv()用來取得參數envvar環境變量的內容。參數envvar環境變量的名稱,如果該變量存在則會返回指向該內容的指針環境變量的格式為envvar=valuegetenv函數的返回值存儲在一個全局二維數組里,當你再次使用getenv函數時不用擔心會覆蓋上次的調用結果。

    返回值:執行成功則返回指向該內容的指針,找不到符合的環境變量名稱則返回NULL。如果變量存在但無關聯值,它將運行成功并返回一個空字符串,即該字符的第一個字節是null

    相關函數:_wgetenvgetenv_s_wgetenv_s




    git取消修改,恢復版本命令大全

    分類: git2014-01-15 15:41 5847人閱讀評論(2)收藏 舉報

    #取消對文件的修改。還原到最近的版本,廢棄本地做的修改。

    git checkout -- <file>


    #取消已經暫存的文件。即,撤銷先前"git add"的操作

    git reset HEAD <file>...


    #修改最后一次提交。用于修改上一次的提交信息,或漏提交文件等情況。

    git commit --amend


    #回退所有內容到上一個版本

    git reset HEAD^


    #回退a.py這個文件的版本到上一個版本 ?

    git reset HEAD^ a.py ?


    #向前回退到第3個版本 ?

    git reset –soft HEAD~3 ?


    #將本地的狀態回退到和遠程的一樣 ?

    git reset –hard origin/master ?


    #回退到某個版本 ?

    git reset 057d ?


    #回退到上一次提交的狀態,按照某一次的commit完全反向的進行一次commit.(代碼回滾到上個版本,并提交git)

    git revert HEAD


    總結

    以上是生活随笔為你收集整理的技术与技巧札记的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。