git常用命令备忘.md

一、安装

## tig是日志查看工具
sudo apt-get install git tig

二、配置

#配置用户名、邮箱
git config --global user.name "your_name" 
git config --global user.email "your_email@qq.com" 

#配置编辑器
git config --global core.editor vim 设置编辑器为vim

三、创建和启用仓库(对于代码管理员)

从命令行创建一个新的仓库

touch README.md
git init
git add README.md
git commit -m "first commit"

#用于将指定的远程 Git 仓库地址添加到本地 Git 仓库中,
#并为其命名一个别名 origin,从而方便后续对该远程仓库进行操作。
#具体就是在.git/config中增加如下内容
#[remote "origin"]
#     url = https://git.hjhai.cn/huangjianghai/xxx.git
#     fetch = +refs/heads/*:refs/remotes/origin/*

git remote add origin https://git.hjhai.cn/huangjianghai/xxx.git
git push -u origin master

四、开发流程中常用命令(对于开发者)

1.检出分支

场景1:远程仓库还没有开发分支,需要先创建推送

## 创建
git checkout -b <local-branch> origin/<remote-branch>
## 推送
git push --set-upstream origin <local-branch>

场景2:远程仓库还已有开发分支,创建本地分支 跟踪 远程分支

## 创建并跟踪
git checkout -b <local-branch> origin/<remote-branch>

## 设置跟踪命令,如果git checkout时未指定的话
git branch --set-upstream-to=origin/<remote-branch> <local-branch>

2.本地开发

## 同步
git pull --rebase

## 修改、提交
git add .
git commit

## 追加提交,不产生新commit
git commit --amend 

3.推送代码

## 切换本地的目标分支,一般是develop或者master,更新代码
git checkout <merge-target-local-branch>  
git pull --rebase

##切换本地修改分支,rebase <merge-target-local-branch> 
git checkout <local-branch>

## 因为你已经在<local-branch>上,所以<local-branch>可以省略
git rebase <merge-target-local-branch> <local-branch> 

## 推送、如果是直接推送当前分支,可使用 HEAD 代替 <local-branch>
git push origin <local-branch>:<remote-branch>  

## 如果使用了commit --amend
git commit --amend
git push origin --force-with-lease <local-branch>:<remote-branch>

五、其他常用命令

1.git clean

忽略的文件:.gitignore 中忽略的文件

未被跟踪的文件:没有被忽略,但是还没 git add 的文件

一般配置和git reset使用

## 删除:未被跟踪的文件
git clean -f

## 删除:未被跟踪的文件和文件夹
git clean -fd

## 删除:忽略的文件、未被跟踪的文件和文件夹
git clean -xfd

## -n 会先打印一些将要删除的文件,并不执行删除动作,主要是查看是否有自己需要的不想被删除
git clean [-xfd] -n

2.远程分支同步至本地分支

## 只会获取远程分支的代码,并且不会自动与本地分支进行合并,需要手动进行合并。
git fetch origin 

## 本地分支与远程分支自动进行合并,并且会删除本地代码库中已经不再存在于远程仓库中的分支。
git remote update origin --prune

## 查看远程分支
git branch -r 

3.重命名远程分支

## 先删除远程分支
git push --delete origin f/old

## 重命名本地分支
git branch -m f/old f/new

## 重新提交一个远程分支
git push origin f/new:f/new

4.提交合并

## id号需要再往前一个
git rebase -i <commitHash>

## 修改一笔笔提交
git commit --amend

5.git reset

## 在重置HEAD和branch的同时,重置stage区和工作目录里的内容
git reset --hard <commitHash>/HEAD~

## 重置HEAD和branch时,保留工作目录和暂存区中的内容,并把重置 HEAD 所带来的新的差异放进暂存区
git reset --soft <commitHash>/HEAD~

## 默认使用 --mixed 参数
## 行为是:保留工作目录,并且清空暂存区。也就是说,工作目录的修改、暂存区的内容以及由 reset 所导致的新的文件差异,都会被放进工作目录。
## 简而言之,就是「把所有差异都混合(mixed)放在工作目录中」
git reset <commitHash>/HEAD~

6.git revert

## 回退指定提交
git revert <commitHash>

7.git cherry-pick

## 指定的提交合入
git cherry-pick <commitHash>

## 转移连续提交,不包括A
git cherry-pick A..B 

## 转移连续提交,包括A
git cherry-pick A^..B 

## 代码冲突
git cherry-pick --continue

## 放弃合入
git cherry-pick --abort
最后修改:2023 年 06 月 15 日
如果觉得我的文章对你有用,请随意赞赏