Git常用命令

克隆

git clone <git链接>从远程仓库clone到本地

初始化

git init初始化版本库
git remote add origin <git链接>将远程仓库与本地仓库关联
git push -u origin master将本地仓库内容提交到远程仓库 (第一次推送加 -u)

提交修改

git status查看当前状态
git diff查看已修改内容
git add将修改内容提交到暂存区
git commit将修改内容从暂存区提交到当前分支
git diff HEAD – <文件名>比较<文件>与版本库中的文件不同

在这里插入图片描述

回退

git log查看git历史(commit历史)
git log --pretty=oneline查看git历史(格式化查看)
git reset --hard HEAD^对于暂存区(stage)中的内容,回到上一个版本(错误的内容add到了暂存区)
HEAD(当前版本) HEAD^(上一个版本) HEAD^^(上两个版本) HEAD~100(上100个版本)
git reset --hard <版本号>回退到指定版本
git reflog查看git历史(所有历史)
git checkout – <文件名>对于工作区的内容,回退到上一版本

删除

git rm <文件名>
git commit
删除版本库中的文件

分支提交与删除

git checkout -b <分支名>新建分支并切换到新分支
git branch查看当前所有分支
git checkout <分支名>切换到指定分支
git merge <分支名>将指定分支合并到当前分支
git branch -d <分支名>删除指定分支
git branch -D <分支名>强制删除指定分支,分支未提交时使用
git log --graph查看分支合并图
git merge --no-ff -m “merge info” <分支名>合并指定分支到当前分支,并保留分支历史信息
git log --graph --pretty=oneline --abbrev-commit查看分支合并历史

分支管理

git stash存档工作现场
git stash list查看已存档的工作现场列表
git stash apply <存档id>恢复指定存档
git stash drop <存档id>删除指定存档
git stash pop <存档id>恢复指定存档并删除
git cherry-pick <提交编码>将指定提交的修改合并到当前分支
git rebase整理分支提交log

标签管理

标签是作用于一次commit上的

git tag 对HEAD打标签,也可以指定commit id
git tag -a -m “blablabla…”指定标签信息
git tag查看所有标签
git tag -d 删除指定标签
git push origin 将指定标签推送到远程仓库
git push origin --tags推送所有未推送到远程仓库的标签
git push origin :refs/tags/删除远程标签

全局配置

git config --global color.ui truegit配置颜色
git config --global alias.co checkoutgit配置别名
git config --global https.proxy http://127.0.0.1:1080配置https代理
git config --global --unset http.proxy取消https代理
git config --add core.filemode false忽略因为文件权限变化

多人协作

git remote查看远程库信息
git remove -v查看远程库信息详情
git push origin <分支名>将该分支上的所有本地提交推送到远程仓库指定分支
git checkout -b <分支名> origin/<分支名>将远程指定分支创建到本地指定分支
git branch --set-upstream-to=origin/<分支名> <分支名>将远程指定分支与本地指定分支建立链接

一般情况下,多人协作的流程:

  • 首先,可以试图用git push origin 推送自己的修改;
  • 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  • 如果合并有冲突,则解决冲突,并在本地提交;
  • 没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!
  • 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to origin/。
  • 这就是多人协作的工作模式,一旦熟悉了,就非常简单。
  • 但是,并不是一定要把本地分支往远程推送,那么,哪些分支需要推送,哪些不需要呢?
  • master分支是主分支,因此要时刻与远程同步;
  • dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
  • bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
  • feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值