git常用命令

1 安装

python 复制代码
brew install git	(mac
sudo apt-get install git	(linux
windows: 官网下载

2 配置

python 复制代码
git config --global user.name "xxx"
git config --global user.email "xxx"

3 检查配置

python 复制代码
git config --global --list

4 生成本地ssh key

python 复制代码
ssh-keygen -t rsa -C "your email@xxx.com"

5 查看本地 ssh key

python 复制代码
cat ~/.ssh/id_rsa.pub

6 初始化-git init

python 复制代码
# 在当前目录下初始化一个 Git 仓库
git init
# 创建一个裸仓库
git init --bare
# 使用指定的模板目录初始化仓库
git init --template=<template_directory>
# 设置仓库的共享模式
git init --shared

7 克隆仓库-git clone

python 复制代码
# 克隆远端仓库到本地
git clone <git url>

# 克隆远端仓库到本地,并同时切换到指定分支 branch1
git clone <git url> -b branch1

# 克隆远端仓库到本地并指定本地仓库的文件夹名称为 my-project
git clone <git url> my-project

8 查看状态-git status

9 提交到临时仓库-git add

python 复制代码
# 将所有修改的文件都提交到暂存区
git add .

# 将修改的文件中的指定的文件 a.js 和 b.js 提交到暂存区
git add ./a.js ./b.js

# 将 js 文件夹下修改的内容提交到暂存区
git add ./js

10 提交到本地仓库-git commit

python 复制代码
# 将工作区内容提交到本地仓库,并添加提交信息xxx
git commit -m "xxx"
                            
# 合并上一次提交(用于反复修改)
git commit --amend -m 'xxx'   
                                     
# 将add和commit合为一步
git commit -am 'xxx' 

# 将工作区内容提交到本地仓库,并对上一次 commit 记录进行覆盖
git commit -m "new message" --amend

# 将工作区内容提交到本地仓库,并跳过 commit 信息填写
git commit --amend --no-edit

# 跳过校验直接提交,很多项目配置 git hooks 验证代码是否符合 eslint、husky 等规则,校验不通过无法提交
git commit --no-verify -m "commit message"

11 查看变更-git diff

python 复制代码
# 显示所有未添加至index的变更
git diff

# 显示所有已添加index但还未commit的变更
git diff --cached

12 显示分支- git branch

python 复制代码
# 显示本地分支
git branch      

# 显示所有分支
git branch -a

# 显示所有已合并到当前分支的分支
git branch --merged

# 本地分支改名
git branch --no-merged                                          

13 切换分支-git checkout

python 复制代码
# 切换到已有的本地分支 branch1
git checkout branch1

# 切换到远程分支 branch1
git checkout origin/branch1

# 基于当前本地分支创建一个新分支 branch2,并切换至 branch2
git checkout -b branch2

# 基于远程分支 branch1 创建一个新分支 branch2,并切换至 branch2
git checkout origin/branch1 -b branch2
## 当前创建的 branch2 关联的上游分支是 origin/branch1,所以 push 时需要如下命令关联到远程 branch2
git push --set-upstream origin branch2

# 撤销工作区 file 内容的修改。危险操作,谨慎使用
git checkout -- <file>

# 撤销工作区所有内容的修改。危险操作,谨慎使用
git checkout .

14 提交到远程仓库-git push

python 复制代码
# 将当前本地分支 branch1 内容推送到远程分支 origin/branch1
git push

# 若当前本地分支 branch1,没有对应的远程分支 origin/branch1,需要为推送当前分支并建立与远程上游的跟踪
git push --set-upstream origin branch1

# 强制提交
## 例如用在代码回滚后内容
git push -f

15 拉取远程仓库并合并-git pull

python 复制代码
# 若拉取并合并的远程分支和当前本地分支名称一致
git pull

# # 若拉取并合并的远程分支和当前本地分支名称不一致
git pull <远程主机名> <分支名>
## 例如当前本地分支为 branch2,要拉取并合并 origin/branch1,则执行:
git pull git@github.com:zh-lx/git-practice.git branch1

# 使用 rebase 模式进行合并
git pull --rebase

16 取消缓存-git restore

python 复制代码
# 将 a.js 文件取消缓存(取消 add 操作,不改变文件内容)
git reset --staged a.js

# 将所有文件取消缓存
git reset --staged .

17 回滚代码- git reset

python 复制代码
# 将某个版本的 commit 从本地仓库退回到工作区(取消 commit 和 add 操作,不改变文件内容)
## 默认不加 -- 参数时时 mixed
git reset --mixed <commit_sha>

# 将某个版本的 commit 从本地仓库退回到缓存区(取消 commit 操作,不取消 add,不改变文件内容)
git reset --soft <commit_sha>

# 取消某次 commit 的记录(取消 commit 和 add,且改变文件内容)
git reset --hard <commit_sha>

## 以上三种操作退回了 commit,都是退回本地仓库的 commit,没有改变远程仓库的 commit。通常再次修改后配合如下命令覆盖远程仓库的 commit:
git push -f
相关推荐
热忱11282 小时前
Git 全套常用命令手册(含日常开发示例)
大数据·git·elasticsearch·搜索引擎
Aliex_git2 小时前
Git SSH 配置
笔记·git·学习·ssh
小舞O_o2 小时前
gitlab文件上传
linux·服务器·git·python·目标检测·机器学习·gitlab
C++ 老炮儿的技术栈11 小时前
在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
c语言·c++·windows·git·vscode·visual studio
Robin罗兵14 小时前
git使用教程2
git
bob_young16 小时前
Git LFS + Gerrit 配置+lfs-test-server(git lfs push总是提示输入https密码解决)
git·lfs
半夏微凉半夏殇19 小时前
git add . 是否会包含.o、.so、.ko文件?深度解析与避坑指南
git
牟同學19 小时前
Git 实战场景操作大全(可直接落地)
git
不做无法实现的梦~20 小时前
使用ros2跑mid360的fastlio2建图
git·单片机·嵌入式硬件·gitcode