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

例如 :

f7f5f4acd05bfc5b68fbb2411ebe9c2f.png

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

29af3710e16e4d0e2b2649c305b9e1c4.png

# 原来的命令是 pick , 表示只是一次commit , 将其修改为reword , 并保存

5465cd64e12ed5145c95d3bae6635344.png

# 在新弹出来的窗口修改message , 并保存

01b80f216764cb5d4ec681bf342bb2d9.png

# 检查是否修改成功

5f953f52b51e13d717f324f3277a5d55.png

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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值