• git主要操作命令


    1、创建版本库

    (1)初始化一个 Git仓库,使用git init命令 (在相应的本地库目录下执行,将该目录初始化为一个Git库);

    (2)添加文件到Git仓库,分两步:

      第一步,使用命令 git add <file> ,注意可反复多次使用添加个文件;
      第二步,使用命令 git commit -m "修改注释信息",将添加的文件提交到本地仓库 。

    2. 时光穿梭
    (1)要随时掌握工作区的状态,git status 命令;
    (2)如果 git status告诉你有文件被修改过,用 git diff <file>可以查看修改内容。 

     2.1 版本回退
    (1)HEAD指向的版本就是当前, 因此Git允许我们在版本的历史之间穿梭,使用命令git reset -- hard (commit_id是要撤销的版本 commit id);
    (2)穿梭前,用git log 可以查看提交历史,便确定要回退到哪个版本; 
    (3)要重返未来,用git reflog 查看命令历史,以便确定要回到未来的哪个版本。 

     2.2工作区和暂存工作区
    (1)工作区( Working Directory):就是你在电脑里能看到的目录; 
    (2)版本库( Repository):工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库;
    (3)暂存区 (Stage):是Repository里一个叫Stage 的地方;
    (4)前面讲了我们把文件往Git版本库里添加的时候,是分两步执行: 
       第一步 用 git add把文件添加进去,实际上是把文件修改添加到暂存区;
       第二步 用 git commit提交更改,实际上是把暂存区的所有内容提交到当前分支(本 地);
    (5)可以简单理解为,需要提交的文件修改通通放到暂存区然后一次性提交暂存区的所有修改。

     2.3管理修改
    (1)每次修改之后,都必须执行git add 和 git commit命令 ,才能够把修改提交到本地仓库 ;
    (2)每次修改,如果不add到暂存区,那就不会加入commit中

     2.4撤销 修改
    (1)场景 1:当你改乱了工作区某个文件的内容,想直接丢弃修改时,用命令git checkout -- file;
    (2)场景 2:当你不但改乱了工作区某个文件的内容,还添加到暂存时 (git add 之后 ), 想丢弃修改,分两步:第一步用命令 git reset HEAD <file>,就回到了场景 1,第二步按场景 1操作;
    (3)场景 3:已经提交了不合适的修改到版本库时 (git commit之后 ),想要撤销本次提交,参考版本回退一节,参考版本回退一节,不过前提是没有推送到远程库 。

    git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态

    git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
    git reset --hard HASH #返回到某个节点,不保留修改。
    git reset --soft HASH #返回到某个节点。保留修改

     2.5删除文件
    (1)命令git rm用于从本地库中删除一个文件 ,之后git commit;
    (2)如果一个文件已经被提交到版本库 (本地 ),那么你永远不用担心误删但是要小心,你只能恢复文件到最新版本 (git checkout -- <file>),你会丢失最近一次提交后修改的内容;
    (3)git checkout -- <file>只是用本地库里的文件替换工作区的文件,因此无论工作区的文件是被误改或删,均可从本地库中一键还原。 

    3、远程仓库

     3.1 添加远程库

    (1)要关联一个远程库 :git remote add <remote url>.git
    (2)关联后,使用命令 git push -u origin master 第一次推送master分支的所有内容;
    (3)此后,每次本地提交只要有必就可以使用命令git push origin master 推送最新修改。 

     3. 2从远程库克隆

    (1)要克隆一个仓库,首先必须知道的地址然后使用git clone 命令克隆:git clone <remote> <url>

    (2)Git支持多种协议,包括 https,但通过ssh支持的原生协议速度最快。 协议速度最快。

     3. 3重命名远程库

    (1)重命名远程库:git remote rename <old name> <new name>

    4、支持分支管理

    4.1 创建与合并分支

    (1)首先,代码库应该有 一个、且仅一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布; Git主分支的名字,默认叫做Master 。它是自动建立的,版本库初始化以后,默认就是在主分支进行开发;

    (2)日常开发应该在另一条分支上完成。我们把开发用的分支,叫做Develop ;这个分支可以用来生成代码的最新隔夜版本( nightly);如果想正式对外发布,就在Master 分支上, 对Develop分支进行 "合并 "(merge );
    (3)git上的分支常用操作:
       查看分支:git branch
       创建分支: git branch <name>
       切换分支:git checkout < branch name>
       创建+切换分支git checkout -b < branch name>
       合并指定分支到当前:git merge -- no -ff <branch name>

            删除本地分支:切换到其他分支 然后git branch -d <branch name>

            删除远程分支:切换到其他分支 然后git branch -a; git git push origin --delete <branch name>

     4.2解决冲突
    (1)当Git无法自动合并分支时,就必须首先解决冲突。首先解决冲突后,再提交,合并完成; 
    (2)用 git log -- graph命令可以看到分支合并图。

     4.3分支管理策略
    (1)Git分支十份强大,在团队开发中应该充份应用。 
    (2)合并分支时,加上 -- no -ff 参数就可以用普通模式合并,合并后的历史有分支能看出来曾经做过合并,而fast forward合并就看不出来曾经做过; 
    (3)使-- no -f合并分支时会提交一个新的commit,这时可以使用 -m参数添加描述: git merge -- no -ff -m “A merge. ” <name><name> <name> 。

     4.4Bug分支
    (1)修复 bug 时,我们会通过创建新的bug分支进行修复,然后合并最后删除(需要在哪个分支上修复 bug ,就在哪个分支上创建bugfix分支,修复完毕后将bugfix分支合并 );
    (2)当手头工作没有完成时,先把现场git stash一下,然后去修复 bug,修复后再git stash pop ,回到工作现场;

     4.5Feature分支
    (1)开发一个新feature,最好新建一个分支;
    (2)如果要丢弃一个没有被合并过的分支,可以通过git branch -D <branch name>强行删除。

    4.6多人协作
    (1)总结:
       查看远程库信息,使用 git remote -v;
       本地新建的分支如果不推送到远程,对其他人就是可见; 
       从本地推送分支,使用git push <remote name> <branch name>,如果推送失败,先用 git pull <remote name> <branch name>抓取远程的新提交;
       在本地创建和远程分支对应的分支,使用git checkout -b branch -name origin/branch name,本地和远程分支的名称最好一致;
    未完待续。。。。

  • 相关阅读:
    PHP---无限极分类数组处理
    PHPExcel数据导入(含图片)
    PHP数组与xml互相转换
    微信APP支付【签名失败】
    winform窗体关闭方案
    ss的优先级 和 权重
    Anaconda 与 conda 区别
    c#FileStream文件读写
    C# DataTable 某一列取算
    关于解决DevExpress用DevExpress patch工具破解后经常弹出试用框的问题
  • 原文地址:https://www.cnblogs.com/wangcp-2014/p/4614863.html
Copyright © 2020-2023  润新知