git常用命令

摘录自

https://www.jianshu.com/nb/34866270

===============================

工作区Working Directory-->暂存区Stage-->版本库Repository-->远程仓库Remote

Git命令:
#初始化本地仓库
git init

#添加文件到本地仓库
#第一步,add到缓冲区:
git add test.txt
git add test1.txt test2.txt

#第二步,commit到本地仓库:
git commit -m "add test.txt"

查看状态:
git status

查看差异:
git diff

#查看提交历史:
git log


#每一行显示一条提交日志:
git log --pretty=oneline

#图形化展示提交历史:
git log --graph

#删除缓存文件:
git rm --cached <file>

回到上一个提交:
git reset --hard HEAD^
回到上上个提交:
git reset --hard HEAD^^
回到前100个提交的
git reset --hard HEAD~100

使用Commit id来回到提交点:
git reset --hard 36f234a60d858871f040cb0d7ca3e78251df82f7

查看操作历史:
git reflog

撤销操作:
a.修改在工作区但并没有提交到缓冲区:
git checkout -- file

b.修改在缓冲区但并没有commit到本地仓库:
git reset HEAD <file>
然后再:
git checkout -- file

c.修改提交到了本地仓库:
git reset --hard HEAD^


创建已有本地仓库和远程仓库的关联
# 添加远程仓库关联
git remote add origin git@github.com:username/repos.git

# 首次推送 master 分支的全部内容
git push -u origin master

# 后续推送 master 分支的最新更改
git push origin master


从已有远程仓库克隆到本地仓库
# 克隆远程仓库到本地仓库
git clone git@github.com:username/repos.git

# 推送 master 分支的最新更改
git push origin master
=============================

#查看远程仓库名称
git remote

#查看远程仓库详情 : 拉取和推送链接
git remote -v


master 分支用于生产环境部署,dev 分支用于收集开发成果,feature 分支用于开发具体功能分支
#推送本地 master 分支到远程仓库的 master 分支
git push origin master

#推送本地 dev 分支到元层仓库的 dev 分支
git push origin dev

拉取远程仓库上的代码:
a.#下载远程仓库的master分支,这一步只会
#将本地仓库中的远程分支更新成了远程仓库相应分支最新的状态
#并不会改变你本地仓库的状态,所以也就不会更新你的 master分支,自然也不会修改你磁盘上的文件.
git fetch origin master

b.#在通过下面的方法之一来合并本地远程分支到本地仓库
git merge origin/master
git rebase origin/master
git cherry-pick origin/master


a,b两步也可以直接通过pull来进行操作,相当于git fetch和git merge:
#拉取最新版本
git pull


团队协同开发时,不仅平时要定期拉取(git pull),推送到远程仓库前更应
先拉取(git pull)再推送(git push),如出现冲突,解决冲突后再推送.

=======================================
分支

创建分支:
#创建分支dev
git branch dev

#列出分支
git branch

#切换到分支dev
git checkout dev


#创建并切换到dev分支 
git checkout -b dev

#删除dev分支
git branch -d dev

#回到mster后再master上合并dev分支
#快速前进模式
git merge dev

#禁用快速前进模式,采用递归模式
git merge --no-ff dev


git 用 <<<<<<< 标记一个分支冲突开始,======= 标记分支分割线,>>>>>>> 标记另一个分支结束.


草稿:
保存当前工作区的内容到草稿箱:
#工作区更改添加到"草稿箱", 支持多次添加到"草稿箱"
git stash

#列出"草稿箱"内容 
git stash list

#恢复"草稿箱"内容
git stash apply

#删除"草稿箱"内容
git stash drop

#恢复并删除"草稿箱"内容
git stash pop

#恢复|删除指定"草稿箱"内容    
git stash <stash-id>
例如 git stash apply stash@{0}

变基合并rebase;
# 切换到 `snow` 分支
$ git checkout snow

#改变基础版本(父版本)为master,简称"变基"
git rebase master

#切换到master分支下
git checkout master

#改变父版本为 `snow` 分支指向的版本
git rebase snow

总结下来就是两步:
将目标分支上的工作成果转移到到主干分支 : git rebase master
主干分支接收已转移好的目标分支工作成果 : git rebase <branch>


=============================================
里程碑式标签
#创建标签
#方式一: 默认 `HEAD` 指向的版本
git tag v0.0.1

#方式二: 指定 `commit_id` 表示的版本
git tag v0.0.2 f971647

#方式三: 指定 `commit_id` 表示的版本,同时创建标签说明信息
git tag -a v0.0.3 -m "v0.0.3" f971647

#列出标签
git tag

#显示标签
git show v0.0.1

#删除标签
git tag -d v0.0.1

#推送标签
git push origin v0.0.1

#推送全部标签
git push origin --tags

#删除远程标签
#a. 删除本地标签 
git tag -d v0.0.1

#b. 推送删除标签(删除也是推送)
git push origin :refs/tags/v0.0.1

==================================
git配置
# 配置当前项目(`local`)的用户名(`snowdreams1006`)
git config --local user.name "snowdreams1006"

# 配置当前项目(`local`)的邮箱(`snowdreams1006@163.com`)
git config --local user.email "snowdreams1006@163.com"

# 查看默认全部配置: `local>global>system`
git config --list

# 查看当前项目配置,等同于 `.git/config` 文件
git config --local --list

# 查看当前用户配置,等同于 `~/.gitconfig` 文件 或 `~/.config/git/config` 文件
git config --global --list

# 查看当前系统配置,等同于 `/etc/gitconfig` 文件
git config --system --list

通过alias取别名
# `git checkout` 缩写成 `git co`
git config --global alias.co checkout

# `git commit` 缩写成 `git ci`
git config --global alias.ci commit

# `git branch` 缩写成 `git br`
git config --global alias.br branch

core.editor 编辑器
# `Mac` 系统如下设置: 设置成自己的 `Sublime` 的安装路径
git config --local core.editor "'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl' -n -w"

# `Windows` 系统如下设置: 设置成自己的 `Sublime` 的安装路径
git config --local core.editor "'F:\Sublime Text 3 sublime text.exe' -n -w"


core.template 提交模板
#查看当前提交模板配置:
git config commit.template

#编辑好提交模板之后进行模板的配置
git config --local commit.template commiit-template.txt
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值