git 将暂存区文件提交_Git知识
生活随笔
收集整理的這篇文章主要介紹了
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 的commitgit 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.進入交互界面 , 同樣選擇父親的 HEADgit 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 , 本地分支 : localbranchNamegit 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
# 檢查sshls -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知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lora终端连接云服务器_腾讯云服务器上
- 下一篇: 设置最小值_AI基础教程62:使用文字菜