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
相关推荐
lifewange3 小时前
常用的Git命令有哪些?
git
无限进步_4 小时前
【C++】电话号码的字母组合:从有限处理到通用解法
开发语言·c++·ide·windows·git·github·visual studio
C++ 老炮儿的技术栈4 小时前
GCC编译时无法向/tmp 目录写入临时汇编文件,因为设备空间不足,解决
linux·运维·开发语言·汇编·c++·git·qt
英俊潇洒美少年4 小时前
Git 常用命令速查表(前端开发专属版)
git
华科大胡子8 小时前
Git二分法定位Bug
git
m0_5791466510 小时前
Git暂存区操作与版本回退
git
三毛的二哥10 小时前
git:git worktree多任务并行开发
git
Yiyi_Coding10 小时前
Git 版本管理重要撤回操作
git
a里啊里啊11 小时前
Git常问面试题
git
达子66611 小时前
Git中文文件名乱码显示SHA-1 哈希值
git·算法·哈希算法