Skip to main content

Git命令

MarshioAbout 3 mingit

init

初始化仓库

git init

remote

远程仓库信息

# 查看远程仓库信息
git remote -v

# 绑定指定仓库
git remote add origin [email protected]:demo/spring.git

# 修改远程仓库地址
git remote set-url origin [email protected]:imarshio/marshio.git

commit

提交改动

git add .

# 提交所有已修改文件
git commit -a -m "new message" 

# 提交指定文件

push

推送提交

git push 

pull

拉取推送,更新分支

git pull

branch & chekout & switch

分支 切换分支

# 新建分支
git branch news_branch_name

# 切换分支
git checkout new_branch_name
# 等价于
git switch new_branch_name

# 以上两条命令可以简写为
git checkout -b new_branch_name
git checkout -B new_branch_name

# 删除分支
git branch -d old_branch_name
# 如果要删除的分支存在未完成的merge,需要替换成如下命令
git branch -D old_branch_name

# 切换到远程分支,--track可以不写
git checkout -b remote_branch_name --track origin/remote_branch_name

# 修改还没被commit 的时候,撤销本地修改
git checkout HEAD -- /path/to/file

git checkout branch_name --

merge

合并

git merge another_branch_name

# 如果有冲突的话,在本地解决冲突

# 解决冲突后,使用add 标记文件为已解决

# 之后commit
git commit -m "merge & resolve conflict"

stash

贮存,暂存当前分支的改动,而不用在切换到其他分支时污染其他分支,或在更新分支时远程推送版本与本地版本有冲突而不能成功更新

场景:比如当前你正在dev分支开发新的需求,突然来了一个临时需求,需要在master分支上新拉一个hot fix分支,但是你当前的需求又马上快完成了,你不想丢掉本地的提交(假设此时,你的本地代码还没推送到远程仓库),那么我们可以使用stash来保证代码的干净。


# 直接调用会将当前所有的修改暂存到一个stash中
git stash

git stash 

rebase

cherry-pick

背景

假设我当前在A分支进行了一次提交,然后我想在B分支进行同样的提交操作,但是不想重新写代码,此时就可以通过 cherry-pick 完成。

# A分支模拟操作
$ git commit -m "test commit"

查看记录

# 查看A分支的提交日志,需要注意这个 commit id,后面会用到
$ git log
commit 866a5ba7fdd81b49662fa47edb068d42d6059b2c (HEAD -> A, origin/A)
Author: demo <[email protected]>
Date:   Thu May 23 17:13:20 2024 +0800

    test commit

commit 6e12f87ec155fc308c10243ec1f8ad35ad345a71
Author: demo <[email protected]>
Date:   Mon May 13 10:08:06 2024 +0800

    pre test commit

提取

# 切换到目标分支B
$ git checkout B

# cherry-pick 后面跟的就是提取的 commit id
$ git cherry-pick 866a5ba7fdd81b49662fa47edb068d42d6059b2c
[B a18b13c] add type column
 Date: Thu May 23 17:13:20 2024 +0800
 2 files changed, 2 insertions(+)

# 确认
$ git log
commit a18b13cfca69a1cbbc1e5b47ebee9f43a60bb0a7 (HEAD -> pre)
Author: demo <[email protected]>
Date:   Thu May 23 17:13:20 2024 +0800

    test commit

fetch


# 将远程仓库的更新下载到本地仓库,但不会直接更新本地分支的代码
git fetch origin 

config


# 查看key值
git config key

# 查看本地key值
git config --local key 

# 查看所有配置,回车查看下一行,q 推出
git config --list