zoukankan      html  css  js  c++  java
  • git学习

    以下内容学自:Git教程

    本地基础操作

    1. pwd 命令可以显示当前的目录。

    2. 通过 git init 命令把当前的目录变成Git可以管理的仓库。

    3. git add <filename> 把文件添加到仓库。

    4. git commit -m <event>

    5. 通过 git status 命令查看当前仓库状态。

    6. git differ <filename> 可以查看修改了什么内容。

    7. git log 可以查看 commit 的历史记录。

    8. git reset --hard HEAD~n n是倒回第几个历史版本。可以将当前版本回退到倒数第n个版本。

      git reset --hard <commit_id> 可以回退到指定的 commit_id 的历史版本。

    9. cat <filename> 可以查看 filename 的内容。

    10. git reflog 可以查看操作的记录。


    示意图

    • git init 之后那个目录就是工作区。

    • git add 就是把修改放到 stage (暂存区)当中。

    • git commit 之后放在暂存区的修改就全部提交到分支。


    1. git checkout -- <filename> 可以用在工作区的文件修改后还没提交到暂存区,使用这个命令可以撤销掉工作区的修改,回到和版本库一模一样的状态。
    2. git reset HEAD <filename> 可以把暂存区的修改撤销掉,重新放到工作区。
    3. git rm <filename> 可以从版本库删除文件,执行完这个还要执行 commit 提交才可以删除版本库的文件。

    远程仓库

    1. 要关联一个远程库。

      使用命令git remote add origin git@server-name:path/repo-name.git

      server-namegithub.compath 是Github账号。repo-name 是仓库名。

    2. 将本地的更新同步到远程仓库。

      • git push -u origin master
        origin 是远程库的名称。
      • 把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
      • 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
      • 之后只要本地作了提交就可以使用 git push origin master 把本地 master 分支的最新修改推送至Github。
    3. 将远程仓库克隆到本地。

      git clone git@server-name:path/repo-name.git

      会将目标克隆到当前目录。


    分支管理

    1. git branch <name> 创建分支。

    2. git checkout <name> 切换分支。

    3. git checkout -b <name> 表示创建并切换分支。

    4. git branch 查看当前分支。

    5. git merge <name> 合并分支。

    6. git branch -d <name> 删除分支。

    7. 处理冲突

      • 当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
      • git log --graph命令可以看到分支合并图。
    8. 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
      如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
      合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

    9. 当手头工作没有完成时,先把工作现场git stash一下,保存现场。

      • git stash apply 恢复现场
      • git stash drop 删除stash。
      • git stash pop 恢复现场并删除stash。
      • git stash list 可以查看所有的stash。
      • 有多个stash的时候,可以使用git stash apply <stashname> 恢复指定的stash。
    10. 如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。

    11. 多人合作

      • 查看远程库信息,使用git remote -v
      • 本地新建的分支如果不推送到远程,对其他人就是不可见的;
      • 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
      • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
      • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name
      • 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

    标签管理

    git的tag绑定了commit,可以说是ip和域名的关系。

    创建标签

    1. 命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;
    2. git tag -a <tagname> -m "blablabla..."可以指定标签信息;
    3. git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;
    4. 命令git tag可以查看所有标签。

    操作标签

    1. 命令git push origin <tagname>可以推送一个本地标签;
    2. 命令git push origin --tags可以推送全部未推送过的本地标签;
    3. 命令git tag -d <tagname>可以删除一个本地标签;
    4. 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。
  • 相关阅读:
    Java泛型
    Java多态
    Anaconda+pycharm配置pytorch1.1.0+cuda 9.0+python3.7环境
    anaconda+fbprophet安装
    pycharm显示所有的tabs
    联想拯救者15-isk安装固态硬盘与系统迁移教程
    VS2017 C++操作mysql数据库
    mfc动态演示排序算法
    模拟处理机作业调度---短作业优先调度算法
    P3327 [SDOI2015]约数个数和
  • 原文地址:https://www.cnblogs.com/fightfordream/p/7209247.html
Copyright © 2011-2022 走看看