Loading

git - 命令速查

常用命令记录,速查速记...

初始化仓库提示命令

创建新版本库

git clone https://gitlab.xxx.com/test/xxx.git
touch README.md
git add README.md
git commit -m "add README"

项目已存在

cd existing_folder
git init
git remote add origin https://gitlab.xxx.com/test/xxx.git
git add .
git commit -m "Initial commit"

已存在版本库

cd existing_repo
git remote rename origin old-origin
git remote add origin https://gitlab.joyame.com/test/sixdu_u2.git

提交本地仓库后撤销

# 查看提交记录
$ git log
# 回退到指定版本
$ git reset --hard <commit-id>

全局配置

# --global 参数:表示机器上所有的仓库都会使用这个配置

# 设置全局用户名和邮箱
# 因为 git 是分布式版本控制系统,机器需要自报家门
$ git config --global user.name "Your Name"
$ git config --global user.email "emai@example.com"

# 设置 git 命令行颜色
$ git config --global color.ui true

# 配置别名
# https://www.liaoxuefeng.com/wiki/896043488029600/898732837407424
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch

# 忽略特殊文件
# https://www.liaoxuefeng.com/wiki/896043488029600/900004590234208

本地仓库

创建本地仓库

# 创建本地目录
$ mkdir git_notes
$ cd git_notes

# 初始化目录
# 该目录下会自动创建 .git 隐藏目录
$ git init
$ ls -al
.git

提交文件到本地仓库

# 新建文件
$ cd git_notes
$ echo "git notes" > readme.md

# 1. 提交暂存区
# 添加单个文件到本地仓库
$ git add readme.md
# 添加目录下所有文件到本地仓库
$ git add .  

# 2. 提交到分支
# 将暂存区的所有文件提交到当前分支
$ git commit -m "first commit readme.md"

其他命令

# 查看状态比如当前目录下文件是否添加仓库,是否提交等等
$ git status
# 查看文件最新修改的内容与之前版本的不同
$ git diff readme.md
# 查看所有提交记录
# 显示版本号、分支、提交的备注信息、提交人、日期
$ git log

# 仅显示版本号、分支、提交的备注信息
$ git log --pretty=oneline

# log 页面,按 q 返回到命令行

# 查看历史命令,通常用来查看未来版本号
$ git reflog

撤销修改

# 将文件恢复到最近一次 add 或 commit 的状态
# -- 代表当前分支
$ git checkout -- readme.md

删除文件

$ git rm readme.md
$ git commit -m "remove readme.md"

回退版本

# 回退上一版本
$ git reset --hard HEAD^

# 回退上上个版本
$ git reset --hard HEAD^^

# 回退到前 100 个版本
$ git reset --hard HEAD~100

# 回退到指定版本,commit_version 通过 git log 查看
# 版本号不写全也可以,多写几位保证唯一
$ git reset --hard {commit_version}

远程仓库

配置通过 ssh 连接远程仓库(使用 https 可以忽略)

# ssh 速度快,https 速度慢且需要输入口令

# 1. 创建 SSH Key
$ cd ~/.ssh
$ ssh-keygen -t rsa -C "lan_yangbi@163.com"
# 一路回车,得到公钥和私钥
$ ll
id_rsa
id_rsa.pub

# 2. 将公钥信息配置到 github
# 进入 github 页面 -> 点击头像 -> settings -> SSH and GPG keys -> SSH keys -> New SSH key
# Title:随意填写
# Key:从 id_rsa.pub 内复制粘贴过来
# 点击 Add SSH key
# 配置好之后,就可以向 github 提交

克隆仓库

$ git clone git@github.com:lanyangbi/lanyangbi.github.io.git

关联远程仓库

# orgin 代表的是远程仓库,这是默认叫法
$ git remote add origin git@github.com:lanyangbi/lanyangbi.github.io.git

# 查看远程仓库
$ git remote
origin

# 查看详细信息
$ git remote -v
origin	https://github.com/lanyangbi/lanyangbi.blog.git (fetch)
origin	https://github.com/lanyangbi/lanyangbi.blog.git (push)

# 取消关联
$ git remote rm origin

提交内容到远程仓库

# 首次提交时加上 -u 代表关联分支,后续就可以不用了
$ git push -u orgin master
$ git push orgin master

查看当前分支

# * 代表当前分支
$ git branch
* dev
  master
  
# 查看全部分支,q 退出
$ git branch -a

创建并切换分支

# 创建分支后切换
$ git branch dev
$ git checkout dev

# 也可以使用一条命令 -b 表示创建并切换到新分支
$ git checkout -b dev

合并指定分支到当前分支

# 当在 dev 有文件修改后
# 需要先切换到 master 分支然后合并
$ git checkout master
$ git merge dev

删除分支

# 当分支合并到 master 后,分支就可以删除啦
$ git branch -d dev

冲突解决

文件冲突

多人协作:分支冲突

保存工作区

$ git stash
Saved working directory and index state WIP on dev: f52c633 add merge

# 查看保存的工作区
$ git stash list

# 恢复工作区
$ git stash apply

# 恢复后,需要手动删除该工作区
$ git stash drop

# 恢复的同时,删除工作区
$ git stash pop

# 可以保存多个 stash,恢复指定 stash
$ git stash apply stash@{0}

复制特定提交到当前分支

# 可以将修改 bug 后提交的修改复制到当前开发分支,避免重复劳动
$ git cherry-pick {commit_version}

强制删除未合并过的分支

$ git branch -D dev

创建标签

# 创建标签
$ git tag v1.0

# 对指定 commit 打标签
$ git tag v1.1 f52c633

# 创建带有说明的标签
$ git tag -a v1.2 -m "version 1.2 released" 1094adb

查看标签

# 查看标签
$ git tag

# 查看标签信息
$ git show v1.0

推送标签到远程仓库

#推送指定标签
$ git push orgin v1.0

# 推送全部标签
$ git push orgin --tags

删除标签

# 删除本地标签
$ git tag -d v1.0

# 删除远程仓库标签
$ git push orgin :refs/tags/v1.0

廖雪峰 Git 教程
Git 实战通关

posted @ 2023-03-10 15:17  ABEELAN  阅读(11)  评论(0编辑  收藏  举报