在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

git命令的基本使用

馬哥Linux運維 ? 來源:稀土掘金技術社區 ? 2023-12-11 13:53 ? 次閱讀

1、初次使用git必用命令

git config 第一次使用git或者剛安裝的git時,使用此命令設置身份Name 和 Eamail 地址。并且每次提交時會使用此信息


git config --global user.name "用戶名"
git config --global user.email 郵箱

git version 檢查當前使用的git版本號


git version
git -v

2、操作遠程倉庫命令

git init 初始化倉庫創建新項目使用該命令進行項目初始化,創建一個空白的存儲庫,用于存儲源代碼

git init

git clone 克隆存儲庫命令,將遠程倉庫代碼克隆到本地

git clone 和git init區別

將尚未進行版本控制的本地目錄轉換為 Git 倉庫;

從其它服務器克隆一個已存在的 Git 倉庫。

git clone ” 遠程倉庫url “

git add 命令會把所有的代碼文件或修改后的文件添加到存儲庫中。此命令提供了添加文件和文件夾的不同選項。


git add *      //添加所有文件到暫存區
git add .      //添加所有文件到暫存區
git add -u .   //-u 表示將已跟蹤文件中的修改和刪除的文件添加到暫存區,不包括新增加的文件
git add -A .   //-A 表示將所有的已跟蹤的文件的修改與刪除和新增的未跟蹤的文件都添加到暫存區
git add *.html
git add *.txt  //添加某個文件類型到暫存區,比如所有的 .html 文件
git add index/ //添加整個文件夾到暫存區,比如index文件夾
git add index/index.html //添加某個文件或者某個文件夾中的某個文件到暫存區 ,比如 index 下的 index.html 文件


git commit將工作區內容或暫存區內容提交到版本庫


# 將暫存區內容提交到版本庫, 進入 vi 命令界面輸入提交信息
git commit


# 將某些已被跟蹤的文件提交到版本庫(包含工作區和版本庫)
git commit [file1] [file2] [...]


# 將暫存區內容提交到版本庫, 無需進入 vi 命令界面輸入提交信息
git commit -m [message]


# 跳過 git add, 將所有已被跟蹤的文件更改提交到版本庫
git commit -am [message]


# 使用一次新的commit, 替代上一次提交
# 如果代碼沒有任何新變化, 則用來改寫上一次commit的提交信息
git commit --amend -m [message]


git status 顯示暫存區文件和當前 HEAD 提交之間有差異的路徑,工作區和暫存區文件之間有差異的路徑,以及工作區中沒有被 Git 跟蹤的路徑 (也沒有被 gitignore 忽略) 。

git status [<選項> …] [--] [<路徑名> …]   //[ ] 表示可選,...表示可以有多項。

git branch命令主要用來處理跟分支有關系的功能,比如創建分支、刪除分支、查看本地分支、查看遠程分支等


git branch          //查看本地分支
git branch -v       //查看本地分支+上次提交的信息
git branch -vv      //查看本地分支+上次提交的信息+本地和遠程分支的關系
git branch -vv -a   //查看本地分支+上次提交的信息+本地和遠程分支的關系+遠程分支 (如果不想顯示提交的信息,也可以去掉-vv參數)
git branch -r       //只查看遠程分支
git branch -d (branchName) //刪除本地分支
git push <主機名> -d <分支名>git push <主機名> --delete <分支名>git push <主機名> :<分支名>         //刪除遠程分支
git checkout (branchName)          //切換本地分支
git branch (branchName) //創建本地分支git checkout -b (branchName) //創建本地分支并切換
git push <遠程主機名> <本地分支名>:<遠程分支名>        //創建遠程分支

       


git checkout 本意是檢出的意思,也就是將某次commit的狀態檢出到工作區;所以它的過程是先將HEAD指向某個分支的最近一次commit,然后從commit恢復index,最后從index恢復工作區。


git checkout (branchName)       
git checkout -b (branchName)  
 

3、git進階

git remote 如果需要與遠程倉庫鏈接,必須使用此命令。此命令會將本地存儲庫連接到遠程。


git remote 
git remote -v | --verbose 
git remote add url 
git remote rm name 
git remote rename old_name new_name 

git push令用于從將本地的分支版本上傳到遠程并合并


git push <遠程主機名> <本地分支名>:<遠程分支名>     //將本地的分支版本上傳到遠程并合并
git push <遠程主機名> <本地分支名>                 //如果本地分支名與遠程分支名相同,則可以省略冒號


以下命令將本地的 master 分支推送到 origin 主機的 master 分支
$ git push origin master === git push origin master:master
如果本地版本與遠程版本有差異,但又要強制推送可以使用 --force 參數
$ git push --force origin master
刪除主機的分支可以使用 --delete 參數,以下命令表示刪除 origin 主機的 master 分支
$ git push origin --delete master

git push --set-upstream先把本地的當前分支推送到遠程倉庫origin的main分支,然后把本地的當前分支關聯到遠程倉庫origin的main分支

git push --set-upstream     

git fetch是將遠程主機的最新內容拉到本地,用戶在檢查了以后決定是否合并到工作本機分支中


git fetch <遠程主機名> //這個命令將某個遠程主機的更新全部取回本地
如果只想取回特定分支的更新,可以指定分支名
git fetch <遠程主機名> <分支名> //注意之間有空格

git pull取回遠程主機某個分支的更新,再與本地的指定分支合并


git pull [options] [ […]]
$ git pull <遠程主機名> <遠程分支名>:<本地分支名>
要取回origin主機的next分支,與本地的master分支合并,需要寫成下面這樣
$ git pull origin next:master
如果遠程分支(next)要與當前分支合并,則冒號后面的部分可以省略。上面命令可以簡寫為
$ git pull origin next
上面命令表示,取回origin/next分支,再與當前分支合并。實質上,這等同于先做git fetch,再執行git merge。
$ git fetch origin
$ git merge origin/next
在某些場合,Git會自動在本地分支與遠程分支之間,建立一種追蹤關系(tracking)。比如,在git clone的時候,所有本地分支默認與遠程主機的同名分支,建立追蹤關系,也就是說,本地的master分支自動”追蹤”origin/master分支。Git也允許手動建立追蹤關系
$ git branch --set-upstream master origin/next
上面命令指定master分支追蹤origin/next分支。如果當前分支與遠程分支存在追蹤關系,git pull就可以省略遠程分支名
$ git pull origin
上面命令表示,本地的當前分支自動與對應的origin主機”追蹤分支”(remote-tracking branch)進行合并。如果當前分支只有一個追蹤分支,連遠程主機名都可以省略
$ git pull
上面命令表示,當前分支自動與唯一一個追蹤分支進行合并。如果合并需要采用rebase模式,可以使用–rebase選項。
$ git pull --rebase <遠程主機名> <遠程分支名>:<本地分支名>




git fetch和git pull的區別


git fetch:相當于是從遠程獲取最新版本到本地,不會自動合并。


git pull:相當于是從遠程獲取最新版本并merge到本地

git stash會把所有未提交的修改(包括暫存的和非暫存的)都保存起來,用于后續恢復當前工作目錄


git stash save "test-cmd-stash"     //存儲一個test-cmd-stash到本地存儲列表git stash list           //查看緩存列表
git stash pop            //恢復之前緩存的工作目錄,這個指令將緩存堆棧中的第一個stash刪除,并將對應修改應用到當前的工作目錄下
git stash apply          //將緩存堆棧中的stash多次應用到工作目錄中,但并不刪除stash拷貝git stash list           //查看現有stash
git stash drop           //移除stash
git stash show           //查看指定stash的diff

git log 查看所有之前的提交,最近的提交出現在最前面。


git log [] [..] [[--] ...]  

常用參數

-p:

按補丁格式顯示每個更新的差異,比下一條--stat命令信息更全。

--stat:

顯示每次提交修改文件的統計信息,每個提交都列出了修改過的文件,以及其中添加和移除的行數,并在最后列出所有增減行數小計。

--shortstat:

只顯示--stat中最后的行數添加、修改、刪除的統計。

--name-only:

僅在提交信息后,顯示已修改的文件清單。

--name-status:

顯示新增、修改、刪除的文件清單。

--abbrev-commit:

僅顯示SHA-1校驗和的前幾個字符,而非所有的40個字符。

--relative-date:

使用較短的相對時間,而不是完整格式顯示日期(比如“2 weeks ago”)。

--graph:

在日志旁以ASCII圖形顯示分支與合并歷史。

--online:

列表的形式查看歷史版本記錄,--pretty=oneline --abbrev-commit合用的簡寫。

--pretty:

使用其他格式顯示歷史提交信息。

可用的選項包括oneline、short、full、fuller和format(用來定義自己的格式)

git shortlog 命令會顯示來自 git log 命令的摘要。如果只對簡短的摘要感興趣,此命令就非常有用了。


git shortlog [] [] [[--] …]
git log --pretty=short | git shortlog []

4、git高級命令

git rebase 可以提取我們在A分支上的改動,然后應用在B分支的代碼上

git rebase -i  [startpoint]  [endpoint]          //-i的意思是--interactive,即彈出交互式的界面讓用戶編輯完成合并操作

gitrebase和git rebase

git merge:當需要保留詳細的合并信息的時候建議使用,特別是需要將分支合并進入master分支時

git rebase:當發現自己修改某個功能時,頻繁進行了git commit提交時,發現其實過多的提交信息沒有必要時使用,分支多,內容多時也可以考慮使用

git bisect 命令可以幫助查找糟糕的提交。

git bisect  

git cherry-pick"挑揀"提交,它會獲取某一個分支的單筆/多筆提交,并作為一個新的提交引入到你當前分支上


git cherry-pick         //將指定的提交(commit)應用于其他分支
轉移多個提交
git cherry-pick  




轉移到另一個代碼庫
git remote add target git://gitUrl
上面命令添加了一個遠程倉庫target。然后,將遠程代碼抓取到本地。
git fetch target
上面命令將遠程代碼倉庫抓取到本地。接著,檢查一下要從遠程倉庫轉移的提交,獲取它的哈希值
git log target/master
最后,使用git cherry-pick命令轉移提交
git cherry-pick 

git blame追溯一個指定文件的歷史修改記錄


git blame [filename] 
git blame的具體顯示格式是
commit ID  (代碼提交作者  提交時間  代碼位于文件中的行數)  實際代碼

git tag主要用于發布版本的管理,一個版本發布之后,我們可以為git打上 v.1.0.1 v.1.0.2 ...這樣的標簽


git tag  //創建本地tag
git push origin  //推送到遠程倉庫
若存在很多未推送的本地標簽,你想一次全部推送的話:
git push origin --tags
以上是基于本地當前分支的最后的一個commit 創建的 tag ,但是如果不想以最后一個,只想以某一個特定的提交為tag ,也是可以的,只要你知道commit 的id。
git log --pretty=oneline //查看當前分支的提交歷史 里面包含 commit id
git tag -a  
git show 
查看本地所有 tag:
git tag 或者 git tag -l
查看遠程所有 tag:
git ls-remote --tags origin
本地 tag 的刪除:
git tag -d 
遠程 tag 的刪除:
git push origin :refs/tags/

git verify-commit使用 GPG、SSH 或 S/MIME,您可以在本地對標簽和提交進行簽名

git verify-commit 

git verify-tag檢查標簽的 GPG 簽名

git verify-tag [--format=] 

git diff比較文件的差異


情景一:查看工作區和暫存區之間文件的差異
git diff 命令,默認查看的就是 工作區 和 暫存區之間文件的差異


1.git diff : 查看工作區和暫存區之間所有的文件差異
2.git diff 
3.git diff 
【注意】:查看具體文件的時候 


情景二:查看工作區和版本庫之間文件的差異git diff HEAD : 查看工作區與最新版本庫之間的所有的文件差異


git diff 具體某個版本 : 查看工作區與具體某個提交版本之間的所有的文件差異
git diff HEAD 
git diff HEAD 
git diff 具體某個版本 
git diff 具體某個版本 


情景三:查看暫存區和版本庫之間文件的差異git diff 
git diff 
git diff 
git diff 




情景四:查看不同版本庫之間文件的差異git diff 版本號1 版本號2 :查看兩個版本之間的差異
git diff 版本號1 版本號2 
git diff 版本號1 版本號2 
git diff 版本號1 版本號2 src : 查看兩個版本之間的文件夾 src 的差異

git citool 基于 Tcl / Tk 的圖形界面用于查看修改后的文件,將它們放入索引,輸入提交消息并將新提交記錄到當前分支。該接口是交互程序較少的替代git commit方案

git citool

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 命令
    +關注

    關注

    5

    文章

    684

    瀏覽量

    22026
  • 源代碼
    +關注

    關注

    96

    文章

    2945

    瀏覽量

    66747
  • Git
    Git
    +關注

    關注

    0

    文章

    199

    瀏覽量

    15761

原文標題:git的必會的基本操作

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

收藏 人收藏

    評論

    相關推薦

    Git命令之本地分支與遠程分支關聯和解除

    在實際的工作生活中,往往需要將本地的分支和遠程分支關聯,這樣我們就可以使用git pull命令來更新拉取最新的代碼,并使用git push命令將自己本地的修改推送到遠程倉庫。但是如果此
    的頭像 發表于 12-15 09:27 ?3253次閱讀
    <b class='flag-5'>Git</b><b class='flag-5'>命令</b>之本地分支與遠程分支關聯和解除

    通過git命令獲取ESP8266_RTOS_SDK失敗如何解決?

    本人使用的硬件平臺為esp8266,開發環境為ubuntu22.04。在通過git命令獲取ESP8266_RTOS_SDK失敗,通過上網搜索嘗試了很多方法無效。具體情況如下
    發表于 06-07 07:26

    SVN,HG,GIT命令對照

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

    Git命令解析-merge、rebase

    時,會保存一個提交對象(commit object),在多次提交后,commit對象形成連續的快照鏈,分支指針自動指向最新一次提交。Git 的默認分支名字是 master。如下圖:branch命令可以
    的頭像 發表于 07-29 18:21 ?1081次閱讀
    <b class='flag-5'>Git</b><b class='flag-5'>命令</b>解析-merge、rebase

    Git命令解析-patch、apply、diff

    無論是merge還是rebase,都是在同一個工作目錄中協調差異,處理變更歷史。而git的另一些命令,允許開發者單獨保存,或者通過文件或郵件的方式與別人分享這些差異。
    的頭像 發表于 06-15 09:28 ?2854次閱讀

    這些常用git命令的工作過程,包你過目不忘

    我覺得創建一些最常用且最有用的 Git 命令的可視化示例會是一個完美的用例!下面我將介紹的很多命令都有可選參數——你可以使用這些參數來改變對應命令的行為。而我的示例只會涵蓋
    的頭像 發表于 06-05 16:18 ?1979次閱讀
    這些常用<b class='flag-5'>git</b><b class='flag-5'>命令</b>的工作過程,包你過目不忘

    Git命令的講解和Git數據通信原理的資料概述

    Git是一款開源的分布式版本控制系統(VCS),常用的VCS工具還包括SVN、Mercurial等,他們的使命是對資源變化的進行版本管理控制,對資源容災備份,支持多域協同開發。這里的資源不僅僅是系統
    發表于 06-11 08:00 ?7次下載
    <b class='flag-5'>Git</b><b class='flag-5'>命令</b>的講解和<b class='flag-5'>Git</b>數據通信原理的資料概述

    常用git命令的工作過程,包你過目不忘

    我覺得創建一些最常用且最有用的 Git 命令的可視化示例會是一個完美的用例!下面我將介紹的很多命令都有可選參數——你可以使用這些參數來改變對應命令的行為。而我的示例只會涵蓋
    的頭像 發表于 06-08 16:29 ?1529次閱讀
    常用<b class='flag-5'>git</b><b class='flag-5'>命令</b>的工作過程,包你過目不忘

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

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

    Git 命令+原理 程序員必備的基礎

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

    Git命令合集(上)

    Git是一個很強大的分布式版本管理工具,它不但適用于管理大型開源軟件的源代碼(如:Linux、kernel),管理私人的文檔和源代碼也有很多優勢(如:wsi-lgame-pro)
    的頭像 發表于 02-15 10:43 ?634次閱讀
    <b class='flag-5'>Git</b><b class='flag-5'>命令</b>合集(上)

    Git命令合集(下)

    Git是一個很強大的分布式版本管理工具,它不但適用于管理大型開源軟件的源代碼(如:Linux、kernel),管理私人的文檔和源代碼也有很多優勢(如:wsi-lgame-pro)
    的頭像 發表于 02-15 10:44 ?497次閱讀
    <b class='flag-5'>Git</b><b class='flag-5'>命令</b>合集(下)

    git命令和參數

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

    Git命令的綜合手冊怎么找

    若你使用 Git 時需要獲取幫助,有三種等價的方法可以找到 Git 命令的綜合手冊(manpage): $ git help $ git -
    的頭像 發表于 07-22 11:02 ?646次閱讀

    Git命令解決常見場景記錄

    不需要這些文件了,想要批量處理掉,所以記錄一下用命令行一次性丟棄未跟蹤文件的方法,同時也記錄一下撤銷push請求的git記錄。
    的頭像 發表于 12-20 09:44 ?497次閱讀
    用<b class='flag-5'>Git</b><b class='flag-5'>命令</b>解決常見場景記錄
    主站蜘蛛池模板: 亚洲乱码卡一卡二卡三永久| 射在老师的里面真爽| 短篇禁伦小说| 欧美午夜色视频国产精品| 91色在线视频| 日本人xxxxxxxxxⅹ69| 一二三区乱码一区二区三区码| 潘金莲国产三级视频在线| 午夜视频在线观看一区| 91中文字幕视频| 日韩视频 中文字幕 视频一区| 黄网站色视频大全免费观看| 亚洲最色网站| 黄色地址| 福利姬 magnet| 校园 春色 欧美 另类 小说| 国语自产拍在线观看7m| 高清在线免费观看| 美女bbbb视频| avt天堂网| 五月婷婷色丁香| www.色天使| videosxxoo18在线| 欧美午夜在线视频| 欧美天天| 香蕉久久夜色精品国产2020| 白丝丝袜高跟国产在线视频| 午夜久久久久久久| 视频一区二区在线观看| 免费在线观看你懂的| 成人观看天堂在线影片| 日xxxx| 日韩不卡毛片| 久久亚洲国产成人影院| 亚洲高清免费| 在线播放免费| 欧美成人亚洲欧美成人| 久久亚洲视频| 欧美xxxx极品流血| 毛片免费高清免费| 99久久久精品免费观看国产|