Github(3)-本地文件管理

使用github 托管代碼簡單使用教程--本地文件管理

  • 1.基本概念
  • 2.本地文件管理
    • 2.1 git add
    • 2.2 git status
    • 2.3 git commit
    • 2.3 git log
    • 2.5 git reset --hard 版本回退
    • 2.6 git reflog
    • 2.7 git diff
    • 2.8 git checkout --file 工作區文件恢復
    • 2.9 git rm 刪除版本庫里的文件

廖雪峰老師博文學習筆記:https://www.liaoxuefeng.com/wiki/896043488029600/897884457270432

代碼修改/新建進入遠端服務器的流程:working directory->staging area->repository->remote repository

git 數據流:
在這里插入圖片描述

1.基本概念

工作區(Workspace)本地一個用于當前文件操作的工作區
暫存區(Stage/Index)存放在“.git/目錄下”的index文件(.git/index)中
版本庫工作區隱藏目錄.git/,存放Git的版本庫。
遠程版本庫托管在服務器上的倉庫,可與本地代碼庫建立連接

2.本地文件管理

git 比其他分布式管理系統優秀的原因是它管理的是修改。

2.1 git add

將文件加入緩存區(什么時候加的技巧沒有掌握)
單個文件,多個文件,名字匹配文件,所有修改/未修改/刪除的文件

git add A.txt
git add A.txt B.txt
git add A*
git add all # 可以提交未跟蹤、修改和刪除文件
git add . # 可以提交未跟蹤和修改文件,但是不處理刪除文件

兩者都可以將工作區中所有未跟蹤或者修改的文件添加到暫存區。(1).git add all無論在哪個目錄執行都會提交相應文件。(2).git add .只能夠提交當前目錄或者它后代目錄下相應文件。

參考博文:https://www.softwhy.com/article-8489-1.html
兩次add 同一個文件后再commit,提交的是最新的修改文件。

2.2 git status

git status

查看當前的工作區和緩存區的狀態,有沒有文件被修改,新增,需要提交之類的。

2.3 git commit

Commit–提交,每一個提交可以被視為一個版本。每一次Commit時,作者、時間、注釋及其之間的版本都會被記錄下來,commit完暫存區被清空。

每當文件修改到一定程度的時候,就可以“保存一個快照”,這個快照在Git中被稱為commit。一旦把文件改亂了,或者誤刪了文件,還可以從最近的一個commit恢復,然后繼續工作,而不是把幾個月的工作成果全部丟失。(廖老師)

每提交一個新版本,實際上Git就會把它們自動串成一條時間線。

git commit -m “提交注釋:first commit/update xxx”

如果某次commit 之后,發現有新的改動需要提交到這個commit中,可以使用–amend

git add updatefile.py # 新修改的文件
git commit --amend # 將新修改的文件提交的最近的一個commit

隨后會跳出提示修改提交信息的窗口,如果不修改提交備注信息,則wq退出即可提交成功。
amend 常用于修改已經提交的版本中的代碼,如果是多步提交之前,可使用reset 將HEAD 移動回對應的版本,然后再提交修改。
注意:amend之后會產生新的版本號git log 看不出來,git reflog才能看的出來

2.3 git log

查看版本信息 ,命令輸出信息中的commit 字段后跟著一個版本號。

git log

在Git中,用HEAD表示當前版本:

HEAD^上一個版本
HEAD^^上上個版本
HEAD~n上n個版本

不顯示詳細的提交信息

git log --pretty=oneline

圖狀顯示

git log --graph --pretty=oneline --abbrev-commit

2.5 git reset --hard 版本回退

版本回退是本地代碼管理的靈魂

git reset --hard 版本號 # 對應的策略
git reset --hard head^

版本號沒必要寫全,前幾位就可以了.

2.6 git reflog

git reset 之后, git log不顯示最新版本信息,使用git reflog查看歷史命令,可以找到對應的版本號.

git reflog

2.7 git diff

對比文件差異

1.工作區Vs緩存區

git diff file_name // 對比工作區與緩存區file_name文件的差異

2.緩存區Vs上一次提交

git diff --cached file_name

3.工作區Vs上一次提交

git diff HEAD file_name

4.兩次提交之間對應文件的差異

git diff 版本號1 版本號2 file_name // 對比兩次提交相應文件的差異。

–號前后是對比對象吧

2.8 git checkout --file 工作區文件恢復

git checkout – readme.txt

讓文件回到最近一次git commit或git add時的狀態。

暫存區里有 未提交的readme.txt ,則將其恢復到工作區
暫存區里無 未提交的readme.txt ,則將版本庫里的readme.txt 恢復到工作區

兩個作用
1丟棄工作區里的修改
2恢復工作區誤刪的文件誤刪操作

git checkout 不帶–,切換分支命令,后續講解

2.9 git rm 刪除版本庫里的文件

將文件從版本庫中刪除

git rm test.txt
git commit -m “remove test.txt”


廖雪峰老師博文學習筆記:https://www.liaoxuefeng.com/wiki/896043488029600/897884457270432

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444991.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444991.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444991.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux 中阻塞與非阻塞 同步與異步

簡單點說: 阻塞就是干不完不準回來, 非阻塞就是你先干,我先看看有其他事沒有,完了告訴我一聲。 我們拿最常用的send和recv兩個函數來說吧。比如你調用send函數發送一定的Byte,在系統內部send做的工作其實只是把數據傳輸(Copy)到TCP/IP協議棧…

leecode62 不同路徑

示例 1: 輸入: m 3, n 2 輸出: 3 解釋: 從左上角開始,總共有 3 條路徑可以到達右下角。 1. 向右 -> 向右 -> 向下 2. 向右 -> 向下 -> 向右 3. 向下 -> 向右 -> 向右 示例 2: 輸入: m 7, n 3 輸出: 28 思路:太過于簡單&#xf…

數據庫的查詢優化建議整理

從大多數數據庫應用系統的實例來看,查詢操作在各種數據庫操作中所占據的比重最大,而查詢操作所基于的SELECT語句在SQL語句中又是代價最大的語句。 查詢語句(SELECT)的優化建議 (1)、合理使用索引:where子句中變量順序應與索引字鍵順序相同。 如:create index test_idx…

Github(4)-遠程操作

使用github 托管代碼簡單使用教程--遠程操作3.連接本地倉庫與遠程倉庫3.1 git clone 克隆實現鏈接3.2 git remote add origin4.遠程操作4.1 git checkout -b 切換分支14.2 git branch 查看分支4.3 git merge 合并分支4.3.1 step1:切換成主分支4.3.2 step2&#xff1…

leetcode64 最小路徑和

給定一個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。 說明:每次只能向下或者向右移動一步。 示例: 輸入: [ [1,3,1], [1,5,1], [4,2,1] ] 輸出: 7 解釋: 因為路徑 1→3→1→1→1 的總…

online游戲服務器架構--網絡架構

啟動:父進程啟動;子進程啟動;網絡架構。 每個父進程攜帶N個子進程,子進程負責處理業務邏輯和其它數據,而父進程只是將客戶端的請求路由到各個子進程,路由的策略非常簡單,父進程將請求包按照輪流…

online游戲服務器架構—用戶登錄數據組織 .

sprite_t類型的數據結構是核心數據結構,每一個登錄用戶對應一個,它的初始化在用戶登錄的時候,此后一直到用戶退出或者離線一直保存在系統內存當中,在此過程中該sprite_t數據結構被保存在兩個哈希表當中,一個是以用戶的…

leetcode300 最長上升子序列

經典題&#xff0c;不解釋&#xff0c;可以看我之前文章。 普通dp public class Solution {public int lengthOfLIS(int[] nums) {if (nums.length 0) {return 0;}int[] dp new int[nums.length];dp[0] 1;int maxans 1;for (int i 1; i < dp.length; i) {int maxval …

Github(5)-開源開發-常見錯誤

使用github 托管代碼簡單使用教程--開源開發-常見錯誤5. github開源開發6. 報錯log6.1 fatal: remote origin already exists.6.2 There is no tracking information for the current branch.6.標簽管理廖雪峰老師博文學習筆記&#xff1a;https://www.liaoxuefeng.com/wiki/89…

online游戲服務器架構--數據庫及事件相關 .

Online服務器的第三部分就是數據層&#xff0c;send_request_to_db開始了數據層的處理邏輯&#xff1a; int send_request_to_db(int cmd, sprite_t* p, int body_len, const void* body_buf, uint32_t id)&#xff1b; 在該函數里首先以懶惰的方式連接數據庫服務器&#xff…

leecode5 最長回文子串

給定一個字符串 s&#xff0c;找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。 示例 1&#xff1a; 輸入: "babad" 輸出: "bab" 注意: "aba" 也是一個有效答案。 示例 2&#xff1a; 輸入: "cbbd" 輸出: "bb"…

libxml解析xml文件的一些總結

libxml -- 解析 XML 文檔XML 介紹&#xff1a;XML 和 DOMlibxml 介紹 數據類型 — xmlChar數據結構 創建 XML 文檔解析 XML 文檔修改 xml 文檔Xpath — 處理大型 XML 文檔libxml2 庫函數要注意的函數讀取 xml 文件xml 操作基本結構及其指針類型根節點相關函數 創建子節點相關函…

Linux(7)-正則表達式

正則表達式demo1:在某個文件中尋找命令seddemo2:尋找8位電話號碼正則表達式&#xff1a;用來描述或者匹配某一系列符合某個句法隊則的字符串或者單個字符串。最初正則表達式&#xff0c;出現在自動控制理論和形式化語言理論中。 Linux 中 find grep sed ls命令都支持正則表達式…

服務器端開發的一些建議

摘要: 本文作為游戲服務器端開發的基本大綱&#xff0c;是游戲實踐開發中的總結。第一部分專業基礎&#xff0c;用于指導招聘和實習考核&#xff0c; 第二部分游戲入門&#xff0c;講述游戲服務器端開發的基本要點&#xff0c;第三部分服務端架構&#xff0c;介紹架構設計中的一…

leetcode63 不同路徑II

一個機器人位于一個 m x n 網格的左上角 &#xff08;起始點在下圖中標記為“Start” &#xff09;。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角&#xff08;在下圖中標記為“Finish”&#xff09;。 現在考慮網格中有障礙物。那么從左上角到右下角將…

小談Online-game服務器端設計(1、2)

談這個話題之前&#xff0c;首先要讓大家知道&#xff0c;什么是服務器。在網絡游戲中&#xff0c;服務器所扮演的角色是同步&#xff0c;廣播和服務器主動的一些行為&#xff0c;比如說天氣&#xff0c;NPC AI之類的&#xff0c;之所以現在的很多網絡游戲服務器都需要負擔一些…

Linux(8)-Linux下的編程開發-C/C++、PHP、JAVA概述

Linux下的編程開發1.C/C語言開發環境的搭建2.PHP開發環境搭建3.JAVA開發環境搭建1.C/C語言開發環境的搭建 方式1:文本編輯器編譯器&#xff08;gcc/g&#xff09; Ubuntu 下常用的文本編輯器&#xff1a; Gedit–語法高亮Vim–vi(無比強大無比難用)的改進。字符界面/圖形界面…

leetcode55 跳躍游戲 秒殺所有答案

給定一個非負整數數組&#xff0c;你最初位于數組的第一個位置。 數組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最后一個位置。 示例 1: 輸入: [2,3,1,1,4] 輸出: true 解釋: 我們可以先跳 1 步&#xff0c;從位置 0 到達 位置 1, 然后再從位置 …

小談Online-game服務器端設計(3)

下面我想來談談關于服務器上NPC的設計以及NPC智能等一些方面涉及到的問題。首先&#xff0c;我們需要知道什么是NPC&#xff0c;NPC需要做什么。NPC的全稱是&#xff08;Non-Player Character&#xff09;&#xff0c;很顯然&#xff0c;他是一個character&#xff0c;但不是玩…

小談Online-game服務器端設計(4)

在這一章節&#xff0c;我想談談關于服務器端的腳本的相關設計。因為在上一章節里面&#xff0c;談NPC智能相關的時候已經接觸到一些腳本相關的東東了。還是先來談談腳本的作用吧。   在基于編譯的服務器端程序中&#xff0c;是無法在程序的運行過程中構建一些東西的&#xf…