Administrator
发布于 2022-12-28 / 56 阅读
0
0

Git Best Practise

客户端配置

全局配置

git config --global user.name weipeng.b
git config --global user.email backend-wp@outlook.com
git config --global user.password “your password”

单个仓库,配置账户

git config user.name ipwwp
git config user.email backend-wp@outlook.com
git config user.password “your password”

拉取代码并切换分支


git clone https://gitee.com/ipwwp/demo-alibaba.git

# 查看 远程服务器地址
$ git remote -v
origin  https://gitee.com/ipwwp/demo-alibaba.git (fetch)
origin  https://gitee.com/ipwwp/demo-alibaba.git (push)


# 查看远程分支
$ git branch -a
* master
  remotes/origin/dev
  remotes/origin/test
  

# 在本地创建分支,与远程的dev分支进行关联
git checkout -b dev_weipeng remotes/origin/dev


# 查看本地分支
$ git branch
* dev_weipeng
  master


# 查看本地分支 和 远程分支的 绑定关系
$ git branch -vv
* dev_weipeng 684a938 [origin/dev] 卫鹏---删除客户端,增加级联判断
  master      4bb35bc [origin/master] Merge branch 'dev

提交代码,并推送到远程仓库

git add -A
git commit -a

git fetch origin dev   
git rebase origin/dev

# git push <远程主机名> <本地分支名>:<远程分支名>
git push origin dev_weipeng:dev

push & pull

# git pull <远程主机名> <远程分支名>:<本地分支名>
git pull origin dev:dev_weipeng

# git push <远程主机名> <本地分支名>:<远程分支名>  与pull正好相反
git push origin dev_weipeng:dev

将多笔提交,合并成一笔

具体场景:我们一般,需要将多笔提交,合并成一笔。此时,我们就用到了rebase

# 这个表示,将从3d19d0a提交,到当前最新提交,这2笔提交之间的所有commit,进行合并
# 注意,合并,不包括3d19d0a这笔提交修改的内容,但是包括最新提交修改的内容

git rebase -i 3d19d0a48edfc5fd6b7e6cd60e3e45e81dbf62df


#如果出现冲突,按照rebase冲突方案解决
git add -A
git rebase --continue


# 最后,将合并好的代码,推送到远程仓库,需要加上-f,表示强制覆盖
git push --force origin dev_weipeng:dev

基于某个tag,创建分支

git clone 整个仓库后使用,以下命令就可以取得该 tag 对应的代码了。

git checkout tag_name
但是,这时候 git 可能会提示你当前处于一个“detached HEAD" 状态。
因为 tag 相当于是一个快照,是不能更改它的代码的。

如果想,基于这个tag,创建一个分支,并且修改代码,则执行以下命令:

git checkout -b branch_name tag_name

这样会从 tag 创建一个分支,然后就和普通的 git 操作一样了。

比如:

git checkout -b saga_barrier_cancel_fix v2.1.4

评论