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

相关文章

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

如何自定义一个log适配器starter

《如何自定义一个log适配器starter》:本文主要介绍如何自定义一个log适配器starter的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求Starter 项目目录结构pom.XML 配置LogInitializer实现MDCInterceptor

git stash命令基本用法详解

《gitstash命令基本用法详解》gitstash是Git中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改,这篇文章主要... 目录一、基本用法1. 保存当前修改(包括暂存区和工作区的内容)2. 查看保存了哪些 stash3. 恢

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

IDEA实现回退提交的git代码(四种常见场景)

《IDEA实现回退提交的git代码(四种常见场景)》:本文主要介绍IDEA实现回退提交的git代码(四种常见场景),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.已提交commit,还未push到远端(Undo Commit)2.已提交commit并push到

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Git可视化管理工具(SourceTree)使用操作大全经典

《Git可视化管理工具(SourceTree)使用操作大全经典》本文详细介绍了SourceTree作为Git可视化管理工具的常用操作,包括连接远程仓库、添加SSH密钥、克隆仓库、设置默认项目目录、代码... 目录前言:连接Gitee or github,获取代码:在SourceTree中添加SSH密钥:Cl

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

SQL中redo log 刷⼊磁盘的常见方法

《SQL中redolog刷⼊磁盘的常见方法》本文主要介绍了SQL中redolog刷⼊磁盘的常见方法,将redolog刷入磁盘的方法确保了数据的持久性和一致性,下面就来具体介绍一下,感兴趣的可以了解... 目录Redo Log 刷入磁盘的方法Redo Log 刷入磁盘的过程代码示例(伪代码)在数据库系统中,r

golang 日志log与logrus示例详解

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