git 学习的流水log

git命令联系

配置以及修改全局user信息

git config --global user.name 'you_name'
git config --global user.email '[email protected]'

现有设备中的所有配置
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 "[email protected]"


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

git remote add github [email protected]: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 "[email protected]"   创建ssh秘钥,默认即可

git remote add githubgit [email protected]: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 [email protected]:lengyue1084/git_learning.git

//把项目clone到本地的git_learning_02文件夹,默认为git_learning的文件夹
git clone [email protected]:lengyue1084/git_learning.git git_learning_02 


clear 清屏
git config --add --local user.name "git02"
git config --add --local user.emal "[email protected]"
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 [email protected]:lengyue1084/learning.git
或者先删除再添加
git remote rm origin
git remote add origin githubgit [email protected]:lengyue1084/learning.git


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

你可能感兴趣的:(版本控制,elasticsearch,大数据,搜索引擎)