zoukankan      html  css  js  c++  java
  • Git命令

    Git:应用广泛的分布式版本控制系统

    版本控制系统:保存某一时刻某些文件快照

    分布式:每个计算机都将中央服务器的信息完整的复制到本地文件(中央服务器有远程仓库)

    SVN:只保存变化的内容,用递增的方式提交版本号

    GIT:保存完整的快照,用hash来计算版本号

     

    GIT的三种状态:1.已修改  新建或者修改了某个已经存在的文件,并不打算提交

             2.已暂存:讲已修改的文件包含下次提交的快照中,但是还没提

             3.已提交:已经存在本地仓库中

    连接远程仓库:Http每次交互需要输入用户名和密码

           ssh  需要先在linux中输入 ssh-keygen一直按回车

            根据路径去找到公钥,将公钥添加到ssh kyes中

    Git命令:

    git init:创建一个空的本地仓库或者重新初始化一个已经存在的本地仓库

    git remote:管理相关的远程仓库

        + add origin url   在本地关联了一个远程仓库,这个仓库的名字为origin

        也可以重命名,删除等等操作

    git clone:可以将远程仓库的内容克隆过来,此时会自动生成一个本地仓库并且和远程仓库关联起来

    我怎么用git clone 远程的所有分支:https://zhidao.baidu.com/question/264071541339121645.html

    git status:显示工作区域的状态,如果只修改某个文件会显示未跟踪的文件

    如果想让修改过的文件或文件夹不被git status提示,可以vi .gitignore 将不想被提示的文件或文件夹的名字输入进去

    git add + 文件:将一个文件交给git跟踪(将一个文件从工作区域提交到暂存区域)

    git reset HEAD + 文件  将一个文件从暂存区弄回到工作区

    git commit -m "add message line 1" + 文件  可以将文件从暂存区提交上去  这里的-m是指可以在后面写一段话当做备注

    可以通过get commit -am  完成add并提交的步骤

    git push:将本地仓库推送到远程仓库,先push再merge,只有push了才能在网页中看到

        -u origin dev  可以添加远程分支

    git log:记录提交日志(本地远程都有,远程会与本地相同)

    git reflog:记录所有的操作日志(只存在于本地仓库),比如切换分支log就没有 这个就有

    git config:修改git配置信息 比如可以修改日志中我们的姓名,邮箱等

    git diff:用来显示不同提交,不同区域,不同分支的差别

        默认是显示工作区与暂存区之间文件的差异

      +    --cached或--staged  会对比暂存区与工作区域的差异

    git checkout -b dev:创建并且切换到dev分支(-b应该是没有就创建)  

          +  -- 文件名  可以将文件恢复成本地仓库的样子

          + 版本号 文件名  可以将文件恢复成某个版本的样子

          HEAD 文件名 代表最近一次的提交

          HEAD~ 文件名 代表上次提交

          HEAD~2 文件名 代表上上次提交,以此类推

    或者通过:git branch dev

            git checkout dev  来创建别切换到dev分支

    git branch:查看分支,当前分支前面会有个*

    合并某分支到当前分支:git merge <name>(分支的名字)

    删除分支:git branch -d <name>

     

    git fetch:拉取远程仓库到本地仓库

    git merge:合并分支

      +  --abort  将这次合并取消

    git cherry-pick +版本号  可以只与当前分支合并某次提交,而merge就会合并全部提交

    git rebase:合并分支

      与git merge的区别

    上面是git merge  可以看出合并效果会比较乱

    下面是git rebase  原本d和e都是dev分支的,合并后变成d'和e',最后是一条线,看起来比较整齐

    git pull:会将远程服务器中所有的分支的内容都弄过来。

    如果两个用户都从远程终端读取到信息,发生了冲突,那么后者需要git pull来获取,然后对发生冲突的文件进行手动解决冲突

    再次push上去(commit 不需要加-m了),同时可以看完合并后的文件可以取消合并,手动修改不需要合并的地方

    git reset --mixed HEAD~  将本地仓库上一个版本的内容拷贝到暂存区   默认是这种情况

    git reset --hard HEAD~    将本地仓库上一个版本的内容拷贝到暂存区和工作区(没把握少使用)

    git reset --soft HEAD~     将HEAD这个指针指向上一个提交的版本,只改变指针的指向

    git revert +版本号  可以去掉某次提交,需要一个界面显示可以先写入再退出

    推荐使用这个,如果用git reset --hard HEAD~ 会将记录全都删除掉

    
    
    
  • 相关阅读:
    团队十日冲刺1
    第八周学习进度
    人月神话阅读笔记02
    课堂练习-顶会热词统计
    第七周学习进度
    《vim — vimrc的设置》
    《开发板 — 调试串口》
    《网络编程 — 127.0.0.1的作用》
    《网络编程 — INADDR_ANY的含义》
    《开发板 — 上查看串口信息》
  • 原文地址:https://www.cnblogs.com/TheQi/p/10566215.html
Copyright © 2011-2022 走看看