Git常用命令

基本使用

  • 初始化仓库:只需一次,再次打开时不需要再次初始化

    git init
    
  • 添加文件:可一次添加多个文件,此时文件进入暂存区

    git add 文件名
    
  • 提交文件:将暂存区的修改加入到分支中

    git commit -m "备注信息"
    
  • 查看文件状态:是否修改和是否提交

    git status
    
  • 查看具体修改内容

    git diff 文件名
    

    查看工作区和版本库最新版本的区别

    git diff HEAD -- 文件名(注意空格)
    
  • 查看提交日志,git log之后可按q键退出

    git log
    

    精简版:精简提交日志

    git log --pretty=oneline
    
  • 版本回退

    git reset --hard HEAD^(几个^表示回退前几个版本,过多可以使用HEAD~n,n表示前几个版本)
    

    或者:该方法可以实现回退也可以前进到回退前的状态

    git reset --hard commit_id 
    

    寻找commit_id

    git reflog
    

    查看文件内容

    cat 文件名
    
  • 撤销修改

    • 将文件回到最近一次git add或者git commit 的状态,这个时候的撤销指的是修改没有被添加到暂存区,即修改在工作区。
    git checkout -- 文件名
    
    • 文件已经添加到暂存区,此时需要撤销修改,首先将文件撤回暂存区,回到工作区
    git reset HEAD 文件名
    

    使用工作区的修改撤回,即

    git checkout -- 文件名
    
    • 推到远程库了不支持修改撤回
  • 删除文件

    从版本库中删除

    git rm 文件名
    

    然后再提交

    git commit -m ""
    

    如果本地删除之后,想从版本库中获取,使用

    git checkout -- 文件名
    

远程仓库

  • 关联远程库,此时远程库的名字为origin

    git remote add origin 仓库对应的SSH
    
  • 本地内容推送到远程库,将当前master分支推送到远程仓库中

    仓库为空时

    git push -u origin master
    

    仓库有内容时

    git push origin master
    
  • 查看远程库信息

    git remote -v
    
  • 删除远程库

    git remote rm origin
    

    本质上是删除了本地和远程库的绑定关系,不是物理上删除了远程库。

  • 克隆远程库

    git clone 仓库对应的SSH
    

分支管理

  • 创建并切换到分支

    git checkout -b 分支名
    

    创建分支

    git branch 分支名
    

    切换到分支

    git checkout 分支名
    
  • 查看当前分支

    git branch
    
  • 合并分支

    先切换分支

    git checkout 分支
    

    注:更为合适的切换分支的命令 switch

    创建并切换到新分支

    git switch -c 分支名
    

    切换到当前有的分支

    git switch 已有分支名
    

    合并分支

    git merge 需要合并的分支
    

    合并分支并禁用Fast forward,一般默认Fast forward模式

    git merge --no-ff 需要合并的分支
    

    合并分支同时增加提交信息

    git merge -m "提交信息"
    

    删除原有分支

    git branch -d 分支名
    

    强制删除分支

    git branch -D 分支名
    
  • 解决冲突

    当git无法自动合并分支时,使用git status可查看冲突的文件,然后手动解决冲突后再提交,可使用如下命令查看分支合并图

    git log --graph
    
  • 分支管理策略

    master用于发布稳定版本,dev用于平时修改,团队合作的代码都上传至dev

  • Bug分支

    面前有两个分支,一个修改了一半,但没有完成,不能提交,一个是上个版本急需修改的bug,现在需要将修改一半的当前工作现场隐藏起来,等以后恢复现场后继续工作。

    git stash
    

    查看原有存储位置

    git stash list
    

    上一版本的bug修复之后,恢复原有分支进度

    git stash pop
    

    将修改后的版本复制到dev版本上

    git cherry-pick bug修复后版本的commit-id
    
  • 推送分支

    git push origin 远程分支名
    
  • 克隆远程分支

    首先创造远程origin的分支dev

    git checkout -b dev origin/dev
    

    此时可以正常push修改内容到dev版本

    别人的推送和本地推送产生冲突

    先抓取远程分支,然后合并,然后再推送

    git pull
    

    若提示没有和远程库链接,先使用如下命令

    git branch --set-upstream-to=origin/dev dev
    

    再尝试pull,然后先合并,若有冲突先解决冲突,之后再提交

  • Rebase

    把本地未push的分叉提交历史整理成直线

    git rebase
    

标签

  • 打标签

    git tag 标签名
    

    默认标签是打在最新一次提交中

  • 查看已有标签

    git tag
    
  • 给历史提交打标签

    git tag 标签名 历史提交commit-id
    
  • 查看标签信息

    git show 需要查看的标签名
    
  • 创建自带说明的标签

    git tag -a 指定标签名 -m 提交信息 commit-id
    
  • 删除标签

    git tag -d 需要删除的标签名
    
  • 推送标签

    推送某一个

    git push origin 标签名
    

    一次性推送全部

    git push origin --tags
    
  • 删除远程标签

    先删除本地标签

    git tag -d 标签名
    

    再删除远程标签

    git push origin :refs/tags/标签名
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值