zoukankan      html  css  js  c++  java
  • git操作记录

    Repository 版本库(也就是仓库)
    新建一个file mkfile -n k +文件名

    1. 提交到本地

    git add 修改的文件名
    git commit -m “备忘信息”
    git status 查看当前状态
    git diff 查看修改内容


          2.回退版本:

    git reset --hard commit_id(注释:commit_id是你想要回退的版本,可以用git log查看提交历史)
    回退到上个版本 git reset --hard HEAD^
    (注释:HEAD代表当前版本,HEAD^代表上个版本,HEAD^^代表上上个本…)
    git reflog 查看命令历史,以便确定要回到未来的哪个版本。用处:回退版本之后反悔。

         3.git 管理的是修改说明
    1. 修改文件1 -> git 文件1 ->再次修改文件1 -> git commit -m “提交信息” ->git status 你会发现第二次修改并没有被提交
    2. 原因是git 只负责把add到缓存区的代码提交,并不会对没有add到缓存去的代码做提交
    3. 解决办法是再次执行git add 修改文件1 ,然后再git commit -m “提交信息” 。就正常了。

        4.撤销修改案例
    在readme.txt中添加了一行,然后手动后悔删掉修改,然后分两种情况:
    1. git add 了
    2. 你没有git add
      git checkout -- readme.txt  结果:(丢弃掉工作区的修改)
    1. 因为add了,文件被放到了缓存区,所以手动后悔删除不该写的话会回退到
    2. 没add, 那就和添加一行修改前一模一样了

     注意 git checkout -- readme.txt  中 --如果没有,就变成切换分支了 。

    也可这样做把add到缓存区的内容重新放回工作区:
    git reset HEAD 加到缓存区的内容
    然后执行 git checkout -- readme.txt 可以丢弃工作区的修改

    网友提供的方法:
    如果想反悔add到缓存区:git reset --mixed这样文件退出暂存区,但是修改保留, 然后git stash 即可忽略修改。哈哈。

         5.删除文件
    git rm test.txt  别忘了 git commit -m "删除testrm.txt"
    git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

     - - - - - -  - - - - - -以上都是基于本地的操作 -  - -  - - - — -  - - -  

        6.创建SSH Key
    ssh-keygen -t rsa -C “你的邮箱”
    在.ssh目录下找到id_rsa.pub公钥 上传到gitHub
    /Users/liuwei/.ssh/id_rsa.pub

        7.将本地代码库和远程仓库关联
    git remote add origin git@github.com:nwgdegitHub/learngit.git
    接下来就把本地内容推到远程去 git push -u origin master

        8.新建分支 git checkout -b dev
    -b代表创建并切换
    git branch查看所有分支和当前分支

        9.切换分支  git checkout master

       10.merge分支 git merge dev 代表把dev分支合并到当前所在的master分支

       11.删除分支 git branch -d dev  一般用在合并之后不需要该分支了
    git branch -D <name>强行删除 一般用在没有合并之前不想要该分支了,因为如果用git branch -d dev的话会出现还有分支未合并的提示。


    - - - - - -- - - - - - - -- - - - - - - - --- - - - - - -
    -  12. 解决冲突

    新建分支feature1,在feature1分支中对ready.txt文件修改 一句话 Creating a new branch is quick AND simple.  之后提交
    同样在 master分支 也修改 Creating a new branch is quick & simple.

    当合并git merge  feature1 时产生冲突 。

    分别把feature1 和 master 中那句话改成一样的即可。就能成功merge了。


     - - - — - - —  — - - - — - - - - —————— - — - - - ——————— — - - - —
        13.分支管理策略 强制禁用Fast forward模式
     使用理由:Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
     --no-ff方式的git merge   会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
    git merge --no-ff -m "merge with no-ff" dev

    ————————————————————————————————————
       14.git stash  应用场景:工作只进行到一半,还没法提交,预计完成还需1天时间。但是接到一个bug修复任务,必须在两个小时内修复该bug。这时可以使用git stash 把当前工作现场“储藏”起来,等以后恢复现场后继续工作。
    完成bug 修复之后回到之前自己的工作分支:git stash list 查看
    两种方式恢复:
    1. git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除
    2. git stash pop,恢复的同时把stash内容也删了

    ------------------------------------------
       15.远程仓库的默认名称是origin
    查看远程库的信息,用git remote
    git remote -v显示更详细的信息

    git push origin master 把本地master分支上的提交推送到远程库

    多人协作:
    首先,可以试图用git push origin branch-name推送自己的修改;
    如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
    如果合并有冲突,则解决冲突,并在本地提交;
    没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!


    ———————————————————————————————————————————
    Github - 一个网站,提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等
    GitLab - 基于Git的项目管理软件,GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

    ______________________________________________________________________________

       16.打标签 git tag <name>

    找到历史提交的commit id  : git log --pretty=oneline --abbrev-commit
    对某次指定commit提交打标签 : git tag <tagname>  <commitId>
    git tag -a v0.1 -m "version 0.1 released" 3628164这里的-a指定标签,-m 指定信息

    此文仅为鄙人学习笔记之用,朋友你来了,如有不明白或者建议又或者想给我指点一二,请私信我。liuw_flexi@163.com/QQ群:582039935. 我的gitHub: (学习代码都在gitHub) https://github.com/nwgdegitHub/
  • 相关阅读:
    js分页的一些思考
    是时候写个自己的dialog了
    自定义幻灯片
    触屏开发技巧之——左右滑动导航
    影响网页响应的一个小习惯
    一个简单WebApp的全程
    选项卡(一个最常见的网页组件)
    REGEX
    map<虽然一直不喜欢map>但突然觉得挺好用的
    迭代器
  • 原文地址:https://www.cnblogs.com/liuw-flexi/p/6694859.html
Copyright © 2011-2022 走看看