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~ 会将记录全都删除掉

    
    
    
  • 相关阅读:
    .net注册iis
    hdu 1081To The Max
    hdu 1312Red and Black
    hdu 1016Prime Ring Problem
    hdu 1159Common Subsequence
    hdu 1372Knight Moves
    hdu 1686Oulipo
    hdu 1241Oil Deposits
    hdu 1171Big Event in HDU
    hdu 4006The kth great number
  • 原文地址:https://www.cnblogs.com/TheQi/p/10566215.html
Copyright © 2011-2022 走看看