zl程序教程

您现在的位置是:首页 >  工具

当前栏目

git部分命令笔记

2023-09-27 14:21:14 时间

配置user信息

git config --global user.name 'your_name'
git config --global user.email 'your_email@domain.com'
# 也可以直接编辑工作目录下面的.git/config直接修改
vim .git/config

建Git仓库

1. 把已有的项目代码纳入Git管理

cd 项目代码所在的文件夹
git init

2. 新建的项目直接用Git管理

cd 某个文件夹
git init your_project # 会在当前路径下创建和项目名称同名的文件夹
cd your_project

清空暂存区

git reset --hard

git变更文件名

git mv 原文件名 新文件名

查看暂存区状态

git status

查看历史

git log
git history
# 简洁看下版本历史
git log --oneline
# 查看最近的2次历史
git log -n2 --oneline

查看本地分支

git branch -v

查看所有分支(包含远程)

git branch -av

创建分支

//commitid可以不指定,默认当前分支最新(commitid可以通过git log 命令获取)
git checkout -b 分支名 commitId

基于远程分支创建本地新分支

git checkout -b 本地分支名  远程分支名

查看图形化分支日志

git log --all --graph

图形化界面的gitk

gitk

切换分支

git checkout 分支名

比较两个commit

git diff 第一个commitid 第二个commitid

git 删除分支

git branch -D 分支名

git 修改最新commit的message

git commit --amend

保存退出

git diff、git diff --cached、git diff HEAD 区别

git diff # 对比工作区(未 git add)和暂存区(git add 之后)

git diff --cached # 对比暂存区(git add 之后)和版本库(git commit 之后)

git diff HEAD # 对比工作区(未 git add)和版本库(git commit 之后)

让暂存区恢复和head一样

git reset HEAD

让工作区的文件恢复和暂存区一样

git checkout -- 待恢复的文件名

取消暂存区部分文件的更改

git reset HEAD --  路径文件名

消除最近的几次提交

git reset --hard commitId

查看不同提交的指定文件的差异

git diff 分支1 分支2 -- 文件名
git diff commitId1 commitId2 -- 文件名

正确删除文件

git rm 文件名

git stash 用法总结和注意点

git stash save "save message" # 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别

git stash list # 查看stash了哪些存储

git stash show # 显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}

git stash show -p # 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show  stash@{$num}  -p ,比如第二个:git stash show  stash@{1}  -p

git stash apply # 应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1} 

git stash pop # 命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}

git stash drop stash@{$num} #丢弃stash@{$num}存储,从列表中删除这个存储

git stash clear #删除所有缓存的stash

开发中临时加塞紧急任务怎么处理?

如何将Git仓库备份到本地

# 哑协议
git clone --bare 路径 name.git

# 智能协议
git clone --bare file://路径 name.git

把本地仓库同步到github

git remote add 远程仓库名 git地址
git remote -v
git push 远程仓库名  --all
git fetch 远程仓库名
git checkout master
git merge  --allow-unrelated-histories 远程仓库名/master  
git push 远程仓库名 master

不同人修改了不同文件如何处理?

git fetch 远端
# git fetch github
# 执行合并远程分支
git merge 远端
git push  

不同人修改同文件的不同区域处理

git fetch
git merge 远程分支
git push

不同人修改同文件的同一区域处理

git fetch
git merge 远程分支
git pull
vim 冲突文件
git commit 注释信息
git push
# 退出merge
git merge --abort
# 删除本地分支
git branch -d 分支名