zoukankan      html  css  js  c++  java
  • Git基础操作

      git pull强行覆盖本地文件方法:

      如果您有任何本地更改,将会丢失。无论是否有--hard选项,任何未被推送的本地提交都将丢失。如果您有任何未被Git跟踪的文件(例如上传的用户内容),这些文件将不会受到影响。

      1.  git fetch --all

      2.  git reset --hard origin/master

         git reset --hard origin/<branch_name>  (其他分支)


      初始化一个Git仓库:$ git init

      查看隐藏目录:$ ls -ah

      添加文件到Git仓库,分两步:
        1.$ git add filename(可反复多次使用,添加多个文件)
        2.$ git commit -m "message"

      查看工作区的状态:$ git status

      查看修改内容:$ git diff

      查看提交历史:$ git log

      查看历史的版本号:$ git log --pretty=oneline

      退回某个版本:$ git reset --hard commit_id
        p.s. commit id(版本号)可以是HEAD^(上一版)、HEAD^^(上上一版)、HEAD~100(上100版)或实际版本号的前几位

          hard是参数,也可改为soft等等,功能不同。 

      查看命令历史:$ git reflog

      查看工作区和版本库里面最新版本的区别:$ git diff HEAD -- filename

      丢弃工作区的修改,让文件回到最近一次git commit或git add时的状态:$ git checkout -- filename

      把暂存区的修改撤销掉,重新放回工作区:$ git reset HEAD filename

      关联一个远程库:$ git remote add origin git@server-name:path/repo-name.git
        例:$ git remote add origin git@github.com:FanSolomon/learngit.git(path写自己GitHub的账号名)

      第一次推送master分支的所有内容:$ git push -u origin master

      此后推送最新修改:$ git push origin master

      克隆某仓库到本地:$ git clone git@server-name:path/repo-name.git
        例:$ git clone git@github.com:FanSolomon/TEST.git(path写自己GitHub的账号名)


      创建+切换分支:$ git checkout -b name

      创建分支:$ git branch name

      切换分支:$ git checkout name

      查看分支:$ git branch

      合并某分支到当前分支:$ git merge name

      删除分支:$ git branch -d name

      查看分支合并图:$ git log --graph
        例:$ git log --graph --pretty=oneline --abbrev-commit

      强制禁用Fast forward模式合并分支:$ git merge --no-ff dev
        p.s.Fast forward模式下,删除分支后,会丢掉分支信息,看不出曾经做过合并。
             普通模式合并,合并后的历史有分支,能看出曾经做过合并。

      "储藏"当前工作现场:$ git stash

      查看工作现场:$ git stash list

      恢复工作现场:$ git stash pop(恢复的同时删除了stash的内容)
             $ git stash apply(恢复后stash内容并不删除)
        p.s.也可以多次stash,恢复的时候先用git stash list查看,然后恢复指定的stash,用命令$ git stash apply stash@{0}

      删除一个没有被合并过的分支:$ git branch -D name

      查看远程库的信息:$ git remote(更详细$ git remote -v)

      推送分支:$ git push origin name
        p.s.Git中分支完全可以在本地自己藏着玩,是否推送视心情而定

      在本地创建和远程分支对应的分支:$ git checkout -b branch-name origin/branch-name(本地和远程分支的名称最好一致)

      推送分支失败时抓取远程的新提交:$ git pull
        p.s.此时git pull失败,因为没有指定本地dev分支与远程origin/dev分支的链接,根据提示,应设置dev和origin/dev的链接

      建立本地分支和远程分支的关联:$ git branch --set-upstream-to <branch-name> origin/<branch-name>
        例:$ git branch --set-upstream-to=origin/dev dev

      把本地未push的分叉提交历史整理成直线:$ git rebase
        p.s.将分叉的提交历史"整理"成一条直线,看上去更直观。缺点是本地的分叉提交已经被修改过了。


      新建标签:$ git tag name
        p.s.默认为HEAD,也可以指定一个commit id(如$ git tag v0.9 f52c633)

      创建带有说明的标签:$ git tag -a tagname -m "illustrate..."
        例:$ git tag -a v0.1 -m "version 0.1 released" 1094adb

      查看所有标签:$ git tag

      查看标签信息:$ git show tagname

      >创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。
      >如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除,然后从远程删除。

      推送一个本地标签:$ git push origin tagname

      推送全部未推送过的本地标签:$ git push origin --tags

      删除一个本地标签:$ git tag -d tagname

      删除一个远程标签:$ git push origin :refs/tags/tagname

    具体用法可参考:

    https://www.liaoxuefeng.com/


  • 相关阅读:
    Azure 虚拟机安全加固整理
    AzureARM 使用 powershell 扩容系统磁盘大小
    Azure Linux 云主机使用Root超级用户登录
    Open edX 配置 O365 SMTP
    powershell 根据错误GUID查寻错误详情
    azure 创建redhat镜像帮助
    Azure Powershell blob中指定的vhd创建虚拟机
    Azure Powershell 获取可用镜像 PublisherName,Offer,Skus,Version
    Power BI 连接到 Azure 账单,自动生成报表,可刷新
    Azure powershell 获取 vmSize 可用列表的命令
  • 原文地址:https://www.cnblogs.com/ZYTZ/p/9247913.html
Copyright © 2011-2022 走看看