• Git常用命令


    author-info wechatOfficialAccount

    廖雪峰老师Git教程学习笔记: https://www.liaoxuefeng.com/wiki/896043488029600

    Git是什么?

    Git是先进的分布式版本控制系统。

    Git的诞生

    Linux为了管理Linux代码而使用C语言开发的版本控制系统

    Git安装

    安装完成之后需要进行配置:

    git config --global user.name "Your name"
    git config --global user.email "Your email"
    

    版本库

    版本库又名仓库,英文名repository,可以理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

    创建版本库

    git init
    

    把文件添加到版本库(添加到暂存区Stage)

    git add filename1 filename2 ...
    

    把文件提交到仓库中(添加到版本仓库(branch))

    git commit -m "Your commit"
    

    查看当前仓库目录下是否有未管理的新文件

    git status
    

    查看提交的版本

    git log
    # 或者
    git log --pretty=oneline
    

    版本回退

    # HEAD表示当前版本,回退到上一版本则写为HEAD^,上上一版本为HEAD^^
    git reset --hard HAED^^
    # 可以使用~简写多版本回退
    git reset --hard HEAD~2
    # 实际上可以通过commit的版本号来指定回退(或者前进)的具体版本
    git reset --hard commit-id
    

    查看以往log命令

    git reflog
    

    将版本库文件替换工作区文件

    git checkout --filename
    

    删除版本库中的文件

    git rm filename
    

    本地仓库同步到Github

    • 生成ssh key

      ssh-keygen -t rsa -C "Your email"
      

      接下来全部回车,然后会在当前目录下生成两个文件:id_rsaid_rsa.pub

    • 添加id_rsa.pub 的内容到你的Github账号:

      # 依次展开: Settings > SSH and GPG keys >New SSH key
      

      随便起个Title,然后复制Key点击添加SSH key即可完成!

    • 新建Github仓库

    • 将本地仓库关联到远程仓库

      git remote add origin git@github.com:yourname/your-repository.git
      
    • 将本地库的内容推送到远程库

      # 第一次推送使用 -u参数,以后每次推送都不必用此参数
      git push -u origin master
      

    远程仓库克隆到本地

    git clone git@github.com:yourname/your-repository.git
    

    创建分支

    # checkout命令用来切换分支,-b参数表示创建分支
    git checkout -b branch-name
    # 可以通过branch命令创建分支而不切换
    git branch branch-name
    # 可以通过checkout 命令切换分支
    git checkout branch-name
    

    查看分支

    git branch
    

    切换分支

    git checkout branch-name
    

    合并分支

    git merge branch-name
    

    删除分支

    git branch -d branch-name
    

    解决分支冲突

    需要将冲突的文件手动修改后再进行合并

    查看分支合并图

    git log --graph
    

    使用普通模式合并(区别于快速合并:fast-forward)

    Fast-forward模式合并看不出曾经做过合并操作,为了能看出曾经做过合并操作,可以带参数合并:

    git merge --no-ff -m "Your commit content" branch-name
    

    分支策略

    稳定版本使用master分支,开发版本使用dev分支

    bug分支

    当出现bug需要修复时,需要先保存当前分支的工作现场再切换到新分支进行修复:

    git stash
    

    查看stash保存的内容:

    git stash list
    

    恢复stash中的内容

    # 恢复而不删除stash list中的内容
    git stash apply
    ## 恢复并删除stash中的内容
    git stash pop
    

    feature分支

    当有新功能要添加时,可以使用创建新的feature分支方法;开发完成后合并到主分支并删除该分支即可;当有冲突需要强制删除分支时使用D参数:

    git branch -D feature-branch
    

    查看远程分支

    git remote
    ##或者
    git remote -v
    

    推送分支到远程

    一般来说,需要推送到远程的分支往往是需要共同开发的分支,比如master和dev分支,而bug分支和feature分支一般只有本地需要

    git push origin master
    git push origin dev
    

    克隆dev分支到本地

    克隆远程分支到本地时,默认只克隆了master分支,如果需要克隆dev分支,需要指定远程分支:

    git checkout -b dev origin/dev
    

    当推送到远程分支产生冲突时,需要先将远程分支最新的版本拉取下来:git pull

    当拉取出错时,需要指定本地dev分支跟远程分支的关联关系

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

    git 分支操作合并

    git rebase
    

    git 添加标签

    可以为某次commit添加标签:

    # 默认标签位于当前最新的commit
    git tag tag-name
    # 使用commit指定标签位置
    git tag tag-name commit-id
    # 使用git tag命令查看标签
    git tag
    # 使用show命令查看标签信息
    git show tag-name
    

    删除标签

    git tag -d tag-name
    

    标签推送到远程

    git push origin tag-name
    # 或者全部推送
    git push origin --tags
    

    远程标签删除

    git push origin :refs/tags/tag-name
    

    参与到开源项目的贡献中

    在github上Fork其他作者的项目并做修改,可向作者提交pull request

    让git配置显示颜色

    git config --global color.ui true
    

    版本库忽略某些文件

    定义一个.gitignore文件写入忽略的文件名

    此时仍旧可以通过f参数来强制添加

    git命令设置别名

    git config --global alias.new-command origin-command
    

    搭建Git服务器

    https://www.liaoxuefeng.com/wiki/896043488029600/899998870925664

  • 相关阅读:
    SQL Server和Oracle数据库索引介绍
    ITPUB上一个Oracle面试题
    国服《巫妖王之怒》3.35冰双持新手献礼指南
    WLK奥法输出循环
    flume架构初接触
    密码校验正则表达式(java 环境)
    初学Mahout测试kmeans算法
    身份证校验(java)
    gcc 中 O选项对空函数的优化
    《肖申克的救赎》语录
  • 原文地址:https://www.cnblogs.com/yczha/p/13160189.html
Copyright © 2020-2023  润新知