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 , 检出时候转换为CRLFgit 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.mdgit rm readme git add readme.mdgit commit -m'renameFile'#方法2 : git mv readme readme.mdgit 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 --allgitk
三.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## 删除分支# 如果分支没有完全合并无法删除 , 删除请使用 -Dgit 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~1git 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基础上演变出来的 , 所以要修改的实际上是80543git 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一样
# 取消暂存区的所有变更 , 恢复到工作区# 改变暂存区内容 resetgit reset HEAD # 取消暂存区部分文件的更改 : 只恢复 filename , filename2文件git reset HEAD -- filename filename2
(2)如何让工作区文件恢复为何暂存区一样的
# 将 工作区filename 文件恢复为暂存区文件git checkout -- filename # 用于改变工作区内容 checkout
(3)清除最近几次提交
# 回滚到b2v3版本git reset --hard b2v3
(4) 删除文件相关操作
# 方法一 : rm fileNamegit 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 + mergegit 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.mdgit rm old.mdgit add new1.mdgit 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# 生成sshssh-keygen -t ed25519 -C "your_email@example.com"# 查看公钥cat /c/Users/A/.ssh/id_rsa.pub
13.优化仓库存储
# 清理不必要的文件并优化本地存储库git gc
git 将暂存区文件提交_Git知识相关推荐
- git 将暂存区文件提交_git 暂存区
一.Git基本工作流程 1.初始化一个仓库 git init git clone git仓库分为两种情况: 第一种是在现有项目或目录下导入所有文件到 Git 中: 第二种是从一个服务器克隆一个现有 ...
- git 将暂存区文件提交_git文件状态,暂存与提交
git中文件的状态有两种:已跟踪或者未跟踪. 从现有目录中创建git仓库 git init git仓库(repository),也叫做版本库.使用git的目的是管理项目,并且保存一些随时间变化的文件. ...
- git 将暂存区文件提交_git基础命令之提交文件
原标题:git基础命令之提交文件 测试百晓生 ceshibaixiaosheng 测试圈懂的最多的人,跟着百晓生一起学测试,你定会有收获.我就在你的口袋,你--有问题难得倒我吗? PS:一颗安利,百晓 ...
- 16、git删除暂存区文件
一.查看文件 git status -s 二.删除文件 git rm --cached (文件路径)只删除暂存区文件 git rm --f(文件路径)删除暂存和物理文件
- 【原创】Git删除暂存区或版本库中的文件
0 基础 我们知道Git有三大区(工作区.暂存区.版本库)以及几个状态(untracked.unstaged.uncommited),下面只是简述下Git的大概工作流程,详细的可以参见本博客的 ...
- git reset --hard HEAD 后恢复暂存区文件
git reset --hard HEAD 后恢复暂存区文件 1.参考资料 git reset–hard后恢复暂存区文件 git reset–hard后恢复暂存区(未提交)文件 关于git reset ...
- git如何查看缓存区文件内容_GIT实操手册 —— 值得收藏的GIT常用命令字典
目录git config 配置 git help 显示有关Git的帮助信息 git init 初始化 git add 将文件内容添加到暂存区 git clone 将存储库克隆到新目录中 git sta ...
- Git 的暂存区(staging area)理解
通常在很多传统集中式版本控制系统中,只有两个空间用来管理你的数据,一个是你的working copy(工作区),另一个便是 datastore(版本库),然而在Git中,引入了staging area ...
- Git-删除暂存区文件
Git命令: git rm --cached <file> 当我们使用 git add 命令添加工作区的文件到暂存区时,我们想要对这个暂存区里面的文件执行删除操作时,我们则使用 git r ...
最新文章
- 有方向的CNN--Oriented Response Networks
- anaconda有什么用?pycharm有什么用?anaconda怎么与pycharm一起联合使用?
- linux makefile 只能使用Tab键进行文本缩进
- Win64 驱动内核编程-18.SSDT
- 当代最值得收藏的画家作品_欣赏当代知名画家谭日群——国画人物画书法作品欣赏...
- SAP Fiori应用里一些OData错误排查的最佳实践
- Kotlin 第三讲——集合篇1
- java可选参数_Java可选
- transition css3 渐变效果
- Python 玩转数据 17 - Pandas 数据处理 合并 pd.merge() df1.merge(df2)
- 键盘代替鼠标工具 Vimac for Mac
- 在Postfix里给邮箱定虚拟别名
- 魅九网下载最新的android固件下载地址,iOS9固件下载地址一览 全设备下载地址...
- BAT批处理如何去写Windows防火墙规则
- 留痕笔记2.0升级到delphi11踩过的坑
- 聊聊解决方案架构师的那些事儿 | 文末有赠书
- ccc.exe_什么是CCC.exe,为什么运行?
- 测试用例之性能测试用例
- 华为搜索引擎问世!互联网格局将改写?
- 计算机实时控制和过程控制,实时控制程序