本文git版本1.9.6
在龍?zhí)兜鹊貐^(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網站設計、成都網站制作 網站設計制作按需開發(fā),公司網站建設,企業(yè)網站建設,品牌網站建設,成都全網營銷推廣,外貿網站建設,龍?zhí)毒W站建設費用合理。
git代碼提交層次圖
一、修改本地代碼查看差異
二、移除代碼
三、重命名代碼
1.1、當我們修改本地code的時候,使用命令可以看到文件的狀態(tài)的處于修改狀態(tài);然后我們可以將code add 然后進行commit;
我們可以看到code修改什么地方,修改了什么內容;
$ git status -s $ echo 'puts "hello world!"' >> hello.rb $ git diff hello.rb
1.2、將此添加到staging area區(qū)域,再次查看文件狀態(tài)
$ git add hello.rb $ git status -s $ git diff hello.rb
可以看到文件狀態(tài)表示staging area和repository區(qū)域之間發(fā)生了改變;
可以看出 diff 選項 可以用于查看working directory 和 staging area 區(qū)域間的文件變化;
1.3、使用 git diff HEAD 可以看到 working directory 和 repository 區(qū)域間 的文件變化
$ git diff HEAD hello.rb
1.4、使用git diff --staged 可以看到 staging area 和 repository 區(qū)域間的文件變化
$ git diff --staged hello.rb
$ git diff --staged --stat hello.rb # 輸出簡要信息
這是文件改變輸出變化的命令
2、移除代碼
2.1、將hello.rb的文件刪除,(此步相當于 add 的逆操作)查看文件狀態(tài);將結果 commit 到 repository;查看文件狀態(tài);
$ git rm hello.rb $ ls $ git status -s
可以看出執(zhí)行 rm 的時候就已經將本地文件刪除掉了;
執(zhí)行 status 可以看到文件狀態(tài)標識為 D 表示處理已刪除狀態(tài);
$ git commit -m "first del" hello.rb
2.2、如果我們不想刪除working directory 區(qū)域的文件,只想刪除 staging area 區(qū)域的文件,可以執(zhí)行 git rm --cached 命令;
$ git rm --cached hello.rb
在執(zhí)行 git status -s 后,D 和 ?? 是什么意思呢? D 表示 staging area 和 repository 區(qū)域的差別,表示 hello.rb 處理刪除狀態(tài), 所以在working directory 區(qū)域的 hello.rb就處于 Untracked 狀態(tài);
2.3、如果想恢復staging area 區(qū)域的hello.rb,可以從repository 拉取 或 從 working directory 提交上去 (在本地沒有改變的時候,如果改變,那提交的是新文件,也不會恢復到之前的文件);
$ git reset hello.rb # 從 repository 拉取
3、重命名代碼
3.1、將本地文件 README.txt 重命名為 README.md ;查看文件狀態(tài),然后提交到 repository ;
$ git mv README.txt README.md $ git commit -m "first rename filename"
tips: 上面 執(zhí)行 commit 的時候,其實是執(zhí)行了兩個步驟,把 README.txt 刪除提交,把 README.md 提交; 看下圖就明白了;
其實在 git 中,文件的名字和內容可以分開理解(就像 Python 的 變量和值);在git中,如果兩個文件的內容一樣,他就認為是一個重命名;