Git學習總結(一)

来源:http://www.cnblogs.com/tongx/archive/2017/09/08/7491026.html
-Advertisement-
Play Games

.常用Git命令清單 一、新建代碼庫 #在當前目錄創建一個Git代碼庫 $ git init #新建一個目錄,將其初始化為Git代碼庫 $ git init [project name] #下載一個項目和它的整個代碼歷史 $ git clone [url] 二、配置 Git的設置未見為.gitcon ...


.常用Git命令清單

 

一、新建代碼庫

#在當前目錄創建一個Git代碼庫

$ git init

#新建一個目錄,將其初始化為Git代碼庫

$ git init [project name]

#下載一個項目和它的整個代碼歷史

$ git clone [url]

二、配置

Git的設置未見為.gitconfig,可以在用戶主目錄下(全局配置),也可以在項目下(項目配置)。

#顯示當前的Git配置

$ git config --list

#編輯Git配置文件

$ git config -e [--global]

#設置提交代碼時的用戶信息

$ git config user.name

$ git congig user.email

三、增加/刪除文件

#添加指定文件到暫存區

$ git add [file1][file2] ...

#添加指定目錄到暫存區,包含子目錄

$ git add [dirname]

#添加當前目錄的所有文件到暫存區

$ git add

#添加每個變化前,都會要求確認

#對於同一個文件的多處變化,可以實現分次提交

$ git add -p

#刪除工作區文件,並且將這次刪除放入暫存區

$ git rm [file1][file2] ...

#停止追蹤指定文件,但該文件會保留在工作區

$ git rm --cache [file]

#更改文件名,並將這次更改放入暫存區

$ git mv [filename-original][filename-renamed]

四、代碼提交

#提交暫存區到本地倉庫區

$ git commit -m [message]

#提交暫存區的指定文件到本地倉庫區

$ git commit [file1] [file2] ...-m [message]

#提交工作區自上次commit之後的變化,直接到本地倉庫區

$ git commit -a

#提交時顯示所有diff信息

$ git commit -v

#使用一次新的commit,代替上一次提交

#如果代碼沒有任何變化,則用來改來上一次commit的提交信息

$ git commit -- amend -m [message]

#重做上一次commit,並包含指定文件的新變化

$ git commit -- amend [file1] [file2] ...

五、分支

#列出所有的遠程分支

$ git branch -r

#列出所有本地分支和遠程分支

$ git branch -a

#新建一個分支,但依然停留在當前分支

$ git branch [branch-name]

#新建一個分支,並切換到該分支

$ git checkout -b [branch]

#新建一個分支,指向指定commit

$ git branch [branch] [commit]

 

#切換到指定分支,並更新工作區

 

$ git checkout [branch-name]

 

#切換到上一個分支

 

$ git checkout -

#合併指定分支到當前分支

$ git merge [branch]

#選擇一個commit,合併到當前分支

$ git cherry-pick [commit]

 

#新建一個分支,與制定的遠程分支建立追蹤關係

$ git branch --track [branch] [remote-branch]

#建立追蹤關係,在現有分支與指定的遠程分支之間

$ git branch --set-upstream [branch] [remote-branch]

#刪除分支

$ git branch -d [branch-name]

#刪除遠程分支

$ git push origin -- delete [branch-name]

$ git branch -dr [remote/branch]

六、標簽

#列出所有標簽

$ git tag

#新建一個tag在當前commit

$ git tag [tag]

#新建一個tag在指定commit

$ git tag [tag] [commit]

#刪除本地標簽

$ git tag -d [tag]

#刪除遠程tag

$ git push origin :refs/tags/[tagname]

#查看tag信息

$ git show [tag]

#提交指定tag

$ git push [remote] [tag]

# 提交所有tag

$ git push [remote] --tags

#新建一個分支,指向某個tag

$ git checkout -b [branch] [tag]

七、查看信息

#顯示所有變更的文件

$ git status

#顯示當前分支的版本歷史

$ git log

#顯示commit歷史,以及每次commit發生變更的文件

$ git log --stat

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

$ git log -S [keyword]

#顯示某個commit之後的所有變動,每個commit占據一行

$ git log [tag] HEAD --pretty=format:%s

#顯示某個commit之後的所有變動,其"提交說明"必須符合搜索條件

$ git log [tag] HEAD --grep feature

#顯示某個文件的版本歷史,包含文件改名

$ git log --follow [file]

$ git whatchanged [file]

#陷害指定文件相關的每一次diff

$ git log -p [file]

#顯示過去5次提交

$ git log -5 --pretty --online

#顯示所有提交過的用戶,按提交次數排序

$ git shortlog -sn

#顯示指定文件是什麼人在什麼時間修改過

$ git blame [file]

#顯示暫存區和工作區的差異

$ git diff

#顯示暫存區和上一個commit之間的差異

$ git diff -cached [file]

#顯示工作區與當前分支最新commit之間的差異

$ git diff HEAD

#顯示兩次提交之間的差異

$ git diff [first-branch]...[second-branch]

#顯示今天寫了多少行代碼

$ git diff --shortstat "@{0 day ago}"

#顯示某次提交的原數據和內容變化

$ git show [commit]

#顯示某次提交發生變化的文件

$ git show --name-only [commit]

#顯示某次提交時,某個文件的內容

$ git show [commit]:[filename]

#顯示當前分支的最近幾次提交

$ git reflog

八、遠程同步

#下載遠程倉庫的所有變動

$ git fetch [remote]

#顯示所有遠程倉庫

$ git remote -v

#顯示某個遠程倉庫的信息

$ git remote show [remote]

#增加一個新的遠程倉庫,並命名

$ git remote add [shortname] [url]

#取回遠程倉庫的變化,並與本地分支合併

$ git pull [remote] [branch]

#上傳本地分支到遠程分支

$ git push [remote] [branch]

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

$ git push [remote] --force

#推送所有分支到遠程倉庫

$ git push [remote] --all

九、撤銷

#恢復暫存區的指定文件到工作區

$ git checkout [file]

#恢復某個commit的指定文件到暫存區和工作區

$ git checkout [commit] [file]

#恢復暫存區的所有文件到工作區

$ git checkout

#重置暫存區的指定文件,與上一次commit保持一致,但工作區不變

$ git reset [file]

#重置暫存區和工作區,與上一次commit保持一致

$ git reset --hard

#重置當前分支的HEAD為指定commit,同時重置暫存區和工作區,與制定commit一致

$ git reset --hard [commit]

#重置當前HEAD為指定commit,但保持暫存區和工作區不變

$ git reset --keep [commit]

#新建一個commit,用來撤銷指定的commit

#後者的所有變化都將被前者抵消,並且應用到當前分支

$ git revert [commit]

#暫時將未提交的變化移除,稍後再移入

$ git stash

$ git stash pop

十、其他

#生成一個可供發佈的壓縮包

$ git archive

#創建一個全新的分支,不包含原分支的提交歷史壓縮包

$ git checkout --orphan gh-pages


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 輸出結果 有時候,輸出結果是: 測試結果: 1 WaitForAll 不會阻塞主線程。 2 100 個 TTask 不會創建100個線程,不用寫代碼就可得到 【線程池】 一樣的功能! 3 無法判斷 Task 全部結束?? 4 線程中涉及到 【介面】時要多註意! 測試環境: win10 + delph ...
  • 今天做了個實現驗證碼功能的小demo,但驗證碼無法輸出到訪問頁面,報錯如下: 圖片寫入response.getOutputStream代碼如下: 隨後百度了一下,將 改為 就可以正常顯示了 _(:з」∠)_ 。。。 ...
  • ``` def test(a, b, c=3): print(locals()) # 混用兩種,確保順序命名在前 test(c = 30, 1, 2) SyntaxError: positional argument follows keyword argument ``` ...
  • 每次我發佈軟體工程師的崗位工作要求 ,各種求職申請就會紛至沓來,接踵而至 。但每每讓我困惑的是, 似乎總有那麼幾位應聘者完全不明白所謂“編程”的意思。 當然,他們另有想法。 而我認為,如果你應聘的是“Web 前端開發”崗位,那麼你只懂jQuery也可以勝任,那麼,“軟體工程師”是不是就意味著會HTM ...
  • 想了半天,發現單獨的封裝和多態沒什麼好講的,我們就簡單說說Java裡面對應的語法吧。 相關內容如下: 一、訪問修飾符 二、getter/setter方法 三、構造方法 四、super和this 五、static關鍵字 六、final關鍵字 七、方法重寫 八、抽象類和介面 一、訪問修飾符 Java當中 ...
  • 其實本來真的沒打算寫這篇文章,主要是我得記憶力不是很好,不像一些記憶力強的人,面試完以後,幾乎能把自己和麵試官的對話都給記下來。我自己當初面試完以後,除了記住一些聊過的知識點以外,具體的內容基本上忘得一干二凈,所以寫這篇文章其實是很有難度的。 但是,最近問我的人實在是太多了,為了避免重覆回答,給自己 ...
  • 原文出處:http://hi.baidu.com/eduask%C9%BD%C8%AA/blog/item/227bf4d81c71ebf538012f53.html 這是什麼原因呢? 1。java在編譯的時候 Integer a = 100; 被翻譯成-> Integer a = Integer. ...
  • thrift初識 c++服務端和python客戶端 thrift作為一個跨語言的服務部署框架,目前的應用非常廣泛。 這裡通過thrift實現一個簡單的echo服務來加深對其的理解和印象。入門學習thrift強烈推薦官方文檔 "thrift study" 整個echo服務分為兩個很簡單的部分,服務端和 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...