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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

git 将暂存区文件提交_Git知识

發布時間:2025/4/16 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git 将暂存区文件提交_Git知识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Git 快速開始

一. 下載git

地址 : https://git-scm.com/downloads

二.git基礎

1.git config 相關命令

# local 只對某一個倉庫有效
git config --local
# global 對當前用戶的所有倉庫有效
git config --global
# system 對系統的所有用戶都有效
git config -system
# 查看 local倉庫的所有配置列表
git config --list --local
# 設置用戶名
git config --global user.name 'name'
# 設置郵件
git config --global user.email 'name@163.com'
# 提交時候轉換為LF , 檢出時候轉換為CRLF
git config --global core.autocrlf true
# 提交時候轉換為LF , 檢出時候不轉換
git config --global core.autocrlf input
# 提交檢出時候均不轉換
git config --global core.autocrlf false

2.git倉庫 相關命令

(1). 對于已有項目交給git管理

cd 項目目錄
git init

(2). 新建項目并交給git管理

cd 某個文件
# 會在當前路徑下創建和項目名稱相同的文件夾
git init your_project

3. git提交相關

# 查看 git 狀態
git status
# 將該文件提交到暫存區
git add fileName #提交單個文件
git add -u # 將目錄下被git管理的文件全部提交到暫存區
# 提交文件到本地倉庫
git commit -m'commit message'
# 查看git提交記錄
git log

4.git文件重命名

以把 readme 文件重命名為 readme.md 為例

#方法1 :
mv readme readme.md
git rm readme
git add readme.md
git commit -m'renameFile'
#方法2 :
git mv readme readme.md
git commit -m'renameFile'

5. ?查看版本演變歷史

git log # 查看版本記錄
git log --oneline # 簡潔查看
git log -n2 # 查看最近2次的
git log --all # 查看所有分支信息
git log --all --graph # 查看多個分支之間的關系
git log --oneline -n2 --all --graph # 全部分支簡潔的最近兩次版本歷史,并展示多分支關系

6. git 圖形界面查看版本記錄

# 打開圖形界面 , 可以查看git樹形圖,并進行一些操作
gitk --all
gitk

三.git進階

1. 查看提交的內容

# 顯示對象類型
git cat-file -t hashvalue
# 看內容
git cat-file -p hashvalue

例如 :

2. git - 分支

(1)新建分支/切換分支

# 假設基于HEAD : b2v3 創建新的分支
git checkout -b newbranchName b2v3
# 不使用暫存區 , 直接提交到本地倉庫 git -am'message'
git commit -am'Test'
# 提交之后commit的信息假設為 b2v6 , 使用b2v6新建一個分支
git branch branch_name b2v6
# 查看所有分支信息
git branch -v
# 查看所有分支信息 , 包括遠端分支
git branch -av
# 基于某一個分支創建分支并切換到該分支 (加上-b會新建并自動切換分支)
git checkout -b new_branch_name old_branch_name

(2)刪除分支

# 查看當前git結構
gitk --all
## 刪除分支
# 如果分支沒有完全合并無法刪除 , 刪除請使用 -D
git branch -d branch_name
# --delete --force 表示確實不再使用這個分支
git branch -D branch_name

3. 清除記錄

清除暫存區和工作區的記錄

git reset --hard
# 下面比較的參數也可用在這里 , 靈活一些呦
# 刪除本地代碼 , 并回退到某一版本
git reset --head HEAD~n
# 不刪除代碼只是回退版本
git reset --soft HEAD~n

4. git 比較

# 比較差異 比較 c1v2 的commit 和 c2v3 的commit
git diff c1v2 c2v3
# 比較當前HEAD 和其父親的比較 (父親可以理解為上一次commit) (~n,可以理解為上幾次提交)
git diff HEAD HEAD~1
git diff HEAD HEAD^
# 比較當前HEAD 和其父親的父親比較
git diff HEAD HEAD^^
git diff HEAD HEAD~2

5. git message相關操作

(1)修改最新提交的message

git commit --amend

之后根據彈出的窗口進行修改即可.

(2)修改某次提交的message

示例 :

#查看當前記錄
git log
# 修改某次message , 要修改的是7085d ,由于他是在8c543基礎上演變出來的 , 所以要修改的實際上是80543
git rebase -i 8c543

# 原來的命令是 pick , 表示只是一次commit , 將其修改為reword , 并保存

# 在新彈出來的窗口修改message , 并保存

# 檢查是否修改成功

6. git commit相關操作

(1)合并多個連續commit

# 1.進入交互界面 , 同樣選擇父親的 HEAD
git rebase -i
# 2.pick => squash
# 3.提交合并message

(1)合并多個不連續commit

# 1.進入交互界面 , 同樣選擇父親的 HEAD
# 如果選擇的是第一次提交 , 那么該指令出現的列表會缺少第一次的pick , 此時需要手動添加進來
git rebase -i
# 進行合并操作 : 將需要合并的多次commit 順序放在一起 , 并修改pick為 squash , 刪除已經合并commit的pick
# 檢查合并結果
git state
# 進行合并后的message修改
git rebase --continue
# 查看版本樹 , 確認結果
git log --graph

7.git diff 操作

暫存區 : add之后文件會存儲在暫存區
HEAD : 頭指針指向的地方 , (最近一次commit)
工作區 : 本地代碼開發環境

(1) 比較暫存區和HEAD所包含文件的差異

git diff --cache

(2) 比較暫存區和工作區所包含文件的差異

# 默認比較的就是暫存區和工作區
git diff
# 比較 filename1 filename2 這兩個文件的差異
git diff -- filename1 filename2
# 查看不同 commit之間的指定文件差異
git diff branchName1 branchName2 -- fileName
# 比較 b2v3 b3v4 兩次commit的指定文件差異
git diff b2v3 b3v4 --filename

8.git 回滾 操作

(1) 如何讓暫存區恢復和HEAD一樣

# 取消暫存區的所有變更 , 恢復到工作區
# 改變暫存區內容 reset
git reset HEAD
# 取消暫存區部分文件的更改 : 只恢復 filename , filename2文件
git reset HEAD -- filename filename2

(2)如何讓工作區文件恢復為何暫存區一樣的

# 將 工作區filename 文件恢復為暫存區文件
git checkout -- filename # 用于改變工作區內容 checkout

(3)清除最近幾次提交

# 回滾到b2v3版本
git reset --hard b2v3

(4) 刪除文件相關操作

# 方法一 :
rm fileName
git rm fileName
# 方法二 : 直接使用 git rm .會同時刪除工作區的該文件,并同步到暫存區
git rm fileName

9.git 臨時保存 操作

# 保存
git stash
# 查看 stash 列表
git stash list
# 之前存放的內容彈出來 , 放到工作區 , stash列表中該記錄刪除
git stash pop
# 之前存放的內容彈出來 , 放到工作區 , stash列表該記錄不會刪除
git stash apply

10. git 忽略指定文件

使用 : .gitignore 進行管理
對于不同語言的項目 , 可以參考gitghub項目進行配置 : https://github.com/github/gitignore

11.git備份

(1) 下載

# 備份遠端代碼
#啞協議備份
git clone --bare github.com/YczYanchengzhe/gitbook.git ya.git
#智能協議備份
git clone --bare file:///github.com/YczYanchengzhe/gitbook.git ya.git
#查看遠端地址
git remote -v
# 添加遠端地址(intelligent : 智能)
#git remote add remoteConName 協議
git remote add intelligent file:///path/to/repo.git

(2) 推送

# 推送代碼 : 推送遠端 intelligent , 本地分支 : localbranchName
git push --set-upstream intelligent localbranchName
# 把本地所有分支信息同步推送到遠端
git push intelligent --all

(3) 拉取

non fast forward ?: 如果拉取時候出現沖突 ,此時git會提示你的倉庫此時處于該狀態 . git倉庫中已經有一部分其他人提交的代碼,所以它不允許你直接把你的代碼覆蓋上去。

# git fetch:只會把遠端代碼拉下來,不會和本地關聯(intelligent:鏈接名,master:分支名)
git fetch intelligent master# 相當于執行了 : fetch + merge
git pull

不同情景的merge

# 不同人修改了不同文件如何處理
git pull
#不同人修改了同文件的不同區域如何處理
git pull
# 同時變更了文件名和文件內容 , 并未沖突
git pull# 不同人修改了同文件的同一區域
git pull
# 處理沖突
# To doSomeThing
# (1) 解決完沖突,進行提交
git commit
# (2) 沖突不想要了,恢復到未拉取狀態
git merge --about# 把同一文件改成了不同的文件名
# 此時會沖突 , git會把這兩個文件都會拉取下來 , 開發者自行解決
# 兩個人分別將 old.md 重命名為 new1.md , new2.md
git rm old.md
git add new1.md
git rm new2.md
# 之后commit即可

(4) 合并代碼

—allow-unrelated-histories : 默認情況下,git mergecommand拒絕合并不具有共同祖先的歷史記錄。合并兩個獨立開始的項目的歷史記錄時,可以使用此選項來覆蓋此安全性。因為這是非常罕見的情況,所以默認情況下不存在用于啟用此功能的配置變量,因此不會添加。

# 合并遠端的master分支代碼
git merge github/master
# 合并代碼 允許合并不相干的兩個樹, 沒有共同的父親
git merge --allow-unrelated-histories github/master

12.配置公私鑰

查看手冊 : https://docs.github.com/en

# 檢查ssh
ls -al ~/.ssh
# 生成ssh
ssh-keygen -t ed25519 -C "your_email@example.com"
# 查看公鑰
cat /c/Users/A/.ssh/id_rsa.pub

13.優化倉庫存儲

# 清理不必要的文件并優化本地存儲庫
git gc

總結

以上是生活随笔為你收集整理的git 将暂存区文件提交_Git知识的全部內容,希望文章能夠幫你解決所遇到的問題。

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