不同场景下常用Git指令

前言

最近团队总有人对GIt指令有疑问,因此跑去调研和实际测试一番,还真发现了之前不太明白的问题,在这记录一下,也许可以帮到大家。

具体场景

初始化

git config --global user.name (userName) 
git config --global user.email <demo@demo.com>
git init (name) 
初始化repo(会自动创建文件夹)
git init
会在当前路径下初始化repo

本地场景

git add name
添加修改的文件
git add * 添加全部
git commit –m “123”
提交&注释
git status
查看状态
git diff HEAD –- <filename>
对比分析
git log 
查看日志

远程场景

git remote add origin git@github.com:michaelliao/learngit.git
添加远程仓库
git push <远程名> <本地名>
推送
git pull
拉取
git reset HEAD
回滚

分支场景

git branch
查看分支
git branch < branchName > 
创建分支
git branch –d < branchName > 
删除分支(git branch -D name 强行删除分支)
git checkout –b name 
创建并切换到分支
git checkout <branchName>
直接切换到分支,若分支不存在则报错
git merge <name>
在当前分支上进行合并

暂存场景

git stash 保存
git stash list 查看
Git stash apply 直接恢复
git stash drop(删除)
git stash pop(直接删除)

标签场景

git tag v1在要打分支的分支上 输入
git log
git tag vx commitid
git tag –d v1 删除
Git push <remoteName> <tagName> 推送单个标签
Git push <remoteName> --tags 推送全部标签 

多人协作冲突场景

这里写图片描述

其他

Intellij IDEA中GIT问题

git rebase <branchName>
与merge有着类似的目的,但过程不一样
取消每个提交(commit),并且把它们临时保存为补丁(patch)(这些补丁放到“.git/rebase”目录中),然后把当前分支更新 到最新的“ branchName ”分支,最后把保存的这些补丁应用到本地分支上。
Shelve
Shelving is temporarily storing pending changes you have not committed yet.
非原生的git指令是intellij自带的工具
类似于stash,作为一个独立的存储点

fork

使用场景:
你想修改一个项目的代码
方法
访问github网站
在项目页面中点击fork( 自己github项目中就会多出一个复制的项目)
clone到本地
开发&commit
Push到我们fork的项目中
提交pull request

fetch与pull

git pull会将本地库更新至远程库的最新状态
git fetch只会将本地库所关联的远程库的commit id更新至最新

这里写图片描述

参考资料

1.http://gitbook.liuhui998.com/index.html
2.https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
3.…………

猜你喜欢

转载自blog.csdn.net/zhaoenweiex/article/details/79312601