git 学习的流水log

2024-09-07 06:52
文章标签 学习 git log 流水

本文主要是介绍git 学习的流水log,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

git命令联系

配置以及修改全局user信息

git config --global user.name 'you_name'
git config --global user.email 'you_email@qq.com'

现有设备中的所有配置
git config --list

现有设备中的所有配置
git config --list --local/--global/--system  优先级为 >


把已有项目纳入git管理
cd project
git init

新建项目
新建文件夹 www
cd www
git init you_project
cd you_project

添加文件需要两步
添加到缓存区
git add css/ index.js
提交文件
git commit git.text -m "本次提交说明内容"

git status 列出仓库的状态,未管理的文件

git add -u 对所有修改的文件做添加到暂存区
git status 会列出所有状态的文件
git commit -m"修改git.text文件"

git 修改文件名
mv index.js index.ts
git add index.ts
git rm index.js
git git status
git reset --hard  清除暂存区里面的数据,不会破坏版本历史

git修改文件名
git mv index.js index.ts
git status
git commit -m "重名名index.js为index.ts"


git log --oneline  简洁的查看
git log -n2 --oneline  查看最近的两个版本

git log --all --oneline 查看所有分支
$ git log --all --oneline --graph 图表方式查看所有分支


git commit -am"编辑git.text文件"  工作区的文件直接创建到版本库

.get目录的讲解
.get/HEAD 指向当前的分支  编辑改文件类似于git checkout master 切换分支的作用
HEAD 引用指向refs refs里面包括了(tags 里程碑标记主要标记位置  heads  分支  独立的空间,比如两个可以独立工作,然后合并到一个系统)

git checkout master 切换到主分支

cat ./.git/config  编辑改文件类似命令git config命令设置的作用
如果设置了local的用户,则会显示

git cat-file -t xxx 查看xxx的类型
git cat-file -p xxx 查看xxx的内容

git branch -av 查看所有分支
git checkout master 切换分支到master

git checkout -b fix_text fix_xxx 切换分支到fix_text

git branch -D xxx  删除分支xxx
git branch -av

git commit --amend 修改当前分支最近的commit的message
git log -l

git branch -av
git rebase -i 合并多个commite记录
git log --graph

git rebase -i  xxxx xxxx 合并多个不连续的commit

git diff --cached 暂存区与HEAD的差距
git commit -m"确认没问题提交"

git diff 工作区与暂存区的差异
git diff -- index.html  style.cxx 查看index.html style.cxx 差异

git status
git reset HEAD 暂存区恢复和HEAD一样(指向当前分支最新的commit)


git checkout -- index.html 工作区的文件恢复到暂存区

git reset HEAD -- style.css 取消部分暂存区文件的更改

git reset --head xxxx 消除最近几次的commit提交(工作、暂存区、HEAD恢复到某次提交)

git diff temp master查看两个分支中的差异
git diff temp master -- index.html 查看两个分支中index.html的差异

删除文件的方法一
rm index.html 
git rm index.html
git status 

git reset --hard HEAD
git status
git rm index.html  删除文件

git status
git stash save "20200731 modify git.txt"
git stash list 
git stash apply 之前存放的内容放到工作区 
git reset --hard HEAD

vi .gitignore 添加不受git控制的文件

git clone --bare /user/xxx 无进度条
git clone --bare file:///user/xxx  有进度条

git remote -v 查看所有远端
git remote add zhineng file:///user/xxx/zhineng.git 本地同步到远端
git push --set-upstream zhineng siyecao

ssh-keygen -t rsa -b 4096 -c "11@qq.com"


git remote -v 查看所有远程仓库配置

git remote add github git@github.com:git2000/git_learning.git 新增一个远端的站点
git remote -v

git push github --all
先拉后推
gitk -all
git pull (先拉、合并,两步合并了)
git fetch github master
git branch -v
git branch -va 远端的也会列出
git checkout master
git merge github/master 
git merge --allow-unrelated-histories github/master
gitk --all
git push github master


git commit -am"编辑git.text文件"  工作区的文件直接创建到版本库
git branch -v 查看分支信息
git branch -al 查看所有分支信息
git checkout -b temp  b42031bbd85950 基于主分支创建的分支
git commit -am"在子分支编辑git.text文件"
git log 查看当前分支的历史
git log --oneline 查看当前分支的历史
git log --all 查看所有分支的版本历史
git log --all --oneline 查看所有分支的版本历史
git log --all --graph 查看所有分支的版本历史 图形化展示
git log --all -n4 --graph 查看所有分支的版本历史 图形化展
gitk  图形化的工具

git checkout master 切换分支到master上面

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"   创建ssh秘钥,默认即可

git remote add githubgit git@github.com:lengyue1084/git_learning.git 添加远端仓库


git push remote githubgit --all

git pull 远端拉下来并且执行合并

git fetch githubgit master

gitk --all

git checkout master 切换主分支

手动合并冲突
git branch -v 查看本地有多少分支
git branch -va 列出所有本地与远端的分支

git checkout master 切换到本地master

git merge githubgit/master 合并本地与远端master 首次合并没有父子关系会出错

git merge -h 查看与历史相关的命令

git merger --allow-unrelated-histories githubgit/master 允许合并两个不相干的分支 弹出框默认:wq即可


git push githubgit master 把本地master push 到远端githubgit上
gitk --all

git commit -am"添加内容"
git push githubgit master

git commit -am"删除文件index.ts"
git push githubgit master

//另一个账号如果想推倒远端需要添加远端仓库
git remote add githubgit git@github.com:lengyue1084/git_learning.git

//把项目clone到本地的git_learning_02文件夹,默认为git_learning的文件夹
git clone git@github.com:lengyue1084/git_learning.git git_learning_02 


clear 清屏
git config --add --local user.name "git02"
git config --add --local user.emal "git02@163.com"
git config --local -l 查看本地仓库的信息

vi .git/config 可以直接修改用户信息
git branch -av

//依远端add_git_commands分支检出并创建本地分支
git checkout -b feature/add_git_commands origin/feature/add_git_commands
git branch -v

vi readme
git add -u
git status
git commit -m'Add commands description in readme'
git push ///此时可以省略

cd git_learning
git config --local -l
git branch -av
git fetch githubgit  会拉区新建分支add_git_commands
git branch -av
git checkout -b feature/add_git_commands github/feature/add_git_commands //第一个本地分支名 第二个远端分支名
git branch -av
vi index.html
git add -u
git commit -m"修改inex.html"

//第二个用户此时在修改文件
vi readem.md
git commit -am "fix readme"
git push
git status
git rm xxx

//第一个用户再push
git push githubgit 此时会报错

git fetch githubgit 拉区远端分支
git branch -av
git merge githubgit/feature/add_git_commands 本地跟远端年合并 此时远端已经修改一个,本地修改一个 此时修改文件不同 合并顺利
git push githubgit 此时会顺利进行

//不同人修改了同一个文件的不同区域
git pull githubgit 修改本地之前最好先执行pull 
git branch -av
git fetch
git branch -av
git merge githubgti 或者 git merge 71abe04
弹出merge messge 可以:wq默认设置
git push githubgit
git branch -av
ls -al
cat git.txt 
gtik -al

//不同人修改了同一个文件的相同区域
git pull githubgit
修改文件
git commit -ma"修改第一行"
git push githubgit 会感知与远端的不同  修改同一块地方,晚提交的人会遇到这个问题
git merge githubgit 会提示问题
git pull 远端与本地merge  会显示冲突问题  
vi git.txt
修改不同人内容,此时需要人工介入,git无法决定
git status 查看是否有没有合并的问题
如果已经merge完了执行
git commit -am"resolved conflict by hand with 4 git commands" 本地生成了一个新的commit
git stauts
git push githubgit

同时更改了文件名和文件内容如何处理
git pull 更新本地版本
git mv index.html index.htm
git status
git commit -am"修改index后缀"
git push githubgit
第二个同学 基于index.html 修改了内容
git push githubgit 会弹出消息弹框 :wq默认即可 合把index.html修改index.htm,文件名字修改了
ls -al 文件名字已经修改成了index.htm git会智能处理


多人修改同一个文件的文件名为不同的文件名
git pull
git mv index.htm index1.htm
git commit -am"修改文件名字index1.htm"
git push githubgit
第二个人
git pull
git mv index.htm index2.htm
git commit -am"修改文件名字index2.htm"
git push githubgit 会报错
git pull
ls -al 会出现index1.htm index2.htm
diff index1.htm index2.htm 内容一样只是名字不同
git status 显示修改名字信息  需要两个人协商文件名,git 不做处理,需要人工介入
git rm index.htm
git add index1.htm 
git status
git rm index2.htm
git status
ls -al
git commit -am"已经处理完文件名冲突,decide to mv index.htm to index1.htm"
gitk -al

慎用命令
checkout reset

git push -h 看push相关参数

强制禁止 
git push -f 禁用  

git log --online 
git reset --hard 934ac 本地重置到934ac分支
git push -f origin feature/add_git_commands 强制更新远端分支,会去除很多已经变成的commit记录

禁止想集成分支执行变更历史的操作 不要更改历史的commit message
公众的分支历史禁止变更 因为其他人可能已经基于统一的commit做了工作导致提交失败
在集成分支只能向前进
不要修改合成分支的提价历史即不要rebase“变基”合成分支

远程仓库改了名字
修改远程仓库地址
git remote set-url githubgit git@github.com:lengyue1084/learning.git
或者先删除再添加
git remote rm origin
git remote add origin githubgit git@github.com:lengyue1084/learning.git


//查看git日志
git log --shortstat
//会展示
2 files changed, 3 insertions(+), 11 deletions(-)

这篇关于git 学习的流水log的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144370

相关文章

golang 日志log与logrus示例详解

《golang日志log与logrus示例详解》log是Go语言标准库中一个简单的日志库,本文给大家介绍golang日志log与logrus示例详解,感兴趣的朋友一起看看吧... 目录一、Go 标准库 log 详解1. 功能特点2. 常用函数3. 示例代码4. 优势和局限二、第三方库 logrus 详解1.

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Git如何修改已提交人的用户名和邮箱

《Git如何修改已提交人的用户名和邮箱》文章介绍了如何修改Git已提交人的用户名和邮箱,包括注意事项和具体步骤,确保操作正确无误... 目录git修改已提交人的用户名和邮箱前言第一步第二步总结git修改已提交人的用户名和邮箱前言需注意以下两点内容:需要在顶层目录下(php就是 .git 文件夹所在的目

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复

bat脚本启动git bash窗口,并执行命令方式

《bat脚本启动gitbash窗口,并执行命令方式》本文介绍了如何在Windows服务器上使用cmd启动jar包时出现乱码的问题,并提供了解决方法——使用GitBash窗口启动并设置编码,通过编写s... 目录一、简介二、使用说明2.1 start.BAT脚本2.2 参数说明2.3 效果总结一、简介某些情

使用@Slf4j注解,log.info()无法使用问题

《使用@Slf4j注解,log.info()无法使用问题》在使用Lombok的@Slf4j注解打印日志时遇到问题,通过降低Lombok版本(从1.18.x降至1.16.10)解决了问题... 目录@Slf4androidj注解,log.info()无法使用问题最后解决总结@Slf4j注解,log.info(

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert