zoukankan      html  css  js  c++  java
  • git基本操作

    在本地创建版本库并推送到远程:

    创建本地版本库

    $ git init
    在本地创建版本库:可以是空的文件夹,也可以是有内容的文件夹
    不管是空文件夹还是非空文件夹都会
    Initialized empty Git repository
    提示这是一个空的版本库
    
    空文件夹的话需要放入相应需要添加的文件
    
    $ git add .
    把文件添加到仓库
    
    $ git commit -m 'first commit'
    把文件提交到仓库
    
    至此,本地版本库建好了
    

    远程Create a new repository

    填入仓库名称和Description,其他保持默认配置
    
    $ git remote add origin git@github.com:wangtongbef/wt-project.git
    关联远程仓库(空库可实现)
    
    如果本地库是空的那么可以关联远程库但是不可以推送分支
    
    $ git push -u origin master
    把当前分支master推送到远程(空库不可实现)
    -u 表示把本地的master分支和远程的master分支关联起来
    
    至此本地仓库顺利添加到远程并与master分支关联
    

    分支管理练习

    $ git branch -vv
    显示本地分支与远程分支的对应关系
    
    $ git checkout -b dev origin/dev
    有origin/dev时 在本地创建并切换到相应的dev分支 此时 dev与origin/dev 已经关联
    
    $ git checkout master
    切换到master分支
    $ git checkout -b dev
    创建并切换到新的dev分支 :此时没有相对应的远程分支
    创建的分支指向当前分支最新的一步
    
    $ git push origin dev
    将本地该分支上的所有本地提交推送到远程库  并会添加一个dev远程库 dev与origin/dev 并没有关联
    
    $ git branch --set-upstream-to=origin/dev dev
    将本地dev与origin/dev相关联

    报错:fatal: refusing to merge unrelated histories(拒绝合并不相关的历史)
    http://confluence.cmrh.com/pages/viewpage.action?pageId=56344452 $ git merge dev 将dev分支合并到当前分支 此时只是本地版本库的变化,还需要git push一下 $ git branch -d dev 删除本地库中的dev分支 $ git branch -D dev 强制删除未合并的本地库的dev分支 $ git remote 查看远程库的信息 $ git remote -v 显示可以抓取和推送的origin的地址 如果没有推送权限 就看不到push的地址

    $ git remote rm origin git与远程库解绑:origin为远程库名称

    $ git branch -r -d origin/dev $ git push origin :dev 两行代码合起来可以做删除远程分支的操作 $git checkout -b 本地分支名 origin/远程分支名 将远程git仓库里的指定分支拉取到本地(本地不存在的分支)

    git合并分支(未验证)

    git合并分支可以借鉴:
    https://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6
    $ git merge{ $ git cherry-pick 38361a68 将特定的提交合并到本分支(已验证) $ git merge dev 如果待合并的分支在当前分支的下游,也就是说没有分叉时,会发生快速合并,这种方法相当于直接把master分支移动到test分支所在的地方,并移动HEAD指针 $ git merge --no-ff dev 这种合并方法会在master分支上新建一个提交节点,从而完成合并,此时dev分支得以保存,log不变(适用于有不同提交的分支) $ git log --graph --pretty=oneline --abbrev-commit 分支详细历史:包括--no-ff合并历史,以图形的方式显示,很直观 $ git rebase dev 将master分支上的多余提交重新在dev上提交一次,然后将master的指针指向最新的提交,dev分支的指针不变化 在rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用"git-add"命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行: $ git rebase --continue 这样git会继续应用(apply)余下的补丁。 $ git rebase --abort 在任何时候,你可以用--abort参数来终止rebase的行动,并且"mywork" 分支会回到rebase开始前的状态。 }

    gitLab浏览器合并

    参考:1,提交并接受合并 —— https://blog.csdn.net/weixin_43606948/article/details/85489257

    2,提交合并请求 —— https://blog.csdn.net/weixin_44253425/article/details/92797933

    3,接受合并请求 —— https://blog.csdn.net/weixin_44253425/article/details/92798189

    git对比两个分支差异

    $ git log dev ^master
    查看dev有 而master中没有的
    
    $ git log master ^dev
    查看master有 而dev中没有的
    
    $ git log master..dev
    查看dev中比master中多提交了哪些内容
    列出来的是两个点后边(此处即dev)多提交的内容。
    同理,想知道 master 比 dev 多提交了什么
    $ git log dev..master
    
    $ git log dev...master
    不知道谁提交的多谁提交的少,单纯想知道有什么不一样
    在上述情况下,再显示出每个提交是在哪个分支上:
    $ git log --left-right dev...master
    注意 commit 后面的箭头,根据我们在 –left-right dev…master 的顺序,左箭头 < 表示是 dev 的,右箭头 > 表示是 master的。
    指向谁代表是那个分支的提交
    

    修改用户名与邮箱(修改Windows10下用户名密码)

    $ git config user.name
    查看用户名
    $ git config user.email
    查看邮箱
    $ git config --global user.name 'wangtong'
    修改用户名
    
    $ git config --global user.email wangt173111@163.com
    修改邮箱

    Windows10下更换Git用户名或密码
    https://jingyan.baidu.com/article/642c9d3435a6e9644a46f732.html

    版本回退

    $ git checkout .
    放弃工作区所有修改
    
    $ git reset
    撤销add操作

    git commit 之后 撤销commit

    $ git reset --soft HEAD^
    不删除工作空间改动代码,撤销commit,不撤销git add . 

    git reset 参数详解:
    HEAD^的意思是上一个版本,也可以写成HEAD~1 如果你进行了2次commit,想都撤回,可以使用HEAD~2
    --mixed 不删除工作空间改动代码,撤销commit,并且撤销git add . 操作 这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
    --soft 不删除工作空间改动代码,撤销commit,不撤销git add .
    --hard 删除工作空间改动代码,撤销commit,撤销git add . 注意完成这个操作后,就恢复到了上一次的commit状态。
    git commit --amend commit注释写错了,想改一下注释,会进入默认vim编辑器,修改注释完毕后保存就好了 $ git log 查看版本详细历史,基准为commit $ git log --pretty=oneline 查看版本简略历史,多条 $ git reflog 查看版本库变化命令历史多条 $ git reset --hard 2f640ed 指定回退到某一版本或某一命令 $ git reset --hard HEAD^ 回退到上一个版本

    git stash将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录

    https://www.cnblogs.com/zndxall/archive/2018/09/04/9586088.html
    https://blog.csdn.net/stone_yw/article/details/80795669

    检查本地的代码修改情况

    git diff 可以查看当前没有add 的内容修改(不在缓冲区的文件变化)
    git diff --cached查看已经add但没有commit 的改动(在缓冲区的文件变化)
    git diff HEAD 是上面两条命令的合并

    打tag(暂时没用,后续整理)

  • 相关阅读:
    git 常用命令
    重要知识点
    HTML 标记语言
    js类型转换
    伪数组变数组 js
    在 JavaScript 中为什么 typeof null 的结果是 object?
    HTML中href、src区别
    解决for循环插入同一元素无法重复插入问题
    HTML5-语义化
    mount 和 /etc/fstab关系。
  • 原文地址:https://www.cnblogs.com/wangtong111/p/11690176.html
Copyright © 2011-2022 走看看