zoukankan      html  css  js  c++  java
  • git全流程

    服务器:Ubuntu

    使用git前准备工作:

      下载git之前先更新:  apt-get update

      安装git:   apt-get install git

      创建本地仓库:  mkdir test

      git初始化:     cd test  git init  

      生成公钥和私钥:  ssh-keyge

      将公钥添加到github里。

    git的使用

      分支操作: 

        克隆仓库:git clone   

        创建本地分支:git branch 分支名

        创建本地分支并切换到分支:git checkout -b 分支名

        根据远程仓库创建本地分支:git branch 分支名 origin/远程分支名

        切换分支:git checkout 分支名

        查看所有分支:git branch 

        删除分支:git checkout -d 分支名

        拉取远程分支代码:git pull 

        在当前分支合并XX分支:git merge 分支名

        将本地分支推送到远程:git push origin 远程分支名

       版本管理: 

        查看状态:git status 

        添加到暂存区:git add 文件/文件夹 

        放弃修改操作:git checkout --文件名 

        添加到本地分支:git commit "备注信息"

        查看历史版本:git log (想看简洁版的带上参数,--pretty=online)

        回退历史版本:git reset 版本号

        查看历史操作:git reflog

        查看文件的修改:git diff 文件名

        删除文件:git rm 文件名

    git运用场景

      场景一:

        当你正在写代码的时候突然线上服务器出现了个bug,这时候你不得不赶快处理线上的bug。一般我们会将正在写的代码,git add, git commit 一下,再切换到bug分支解决bug。解决完成以后git commit bug分支的代码。在切换回来。除了这样的操作,我们还有一种可选方案:

        1.正在写东西,突然有bug需要解决。

          git stash    #将当前的代码放在一个新的临时区/暂存区。以免带入其他分支。

          git checkout bug    #切换到bug分支

          vim views.py       #修改代码,解决bug

          git add views.py    #添加修改内容到暂存区

          git commit "change_bug"  #提交代码到本地仓库

          git checkout master   #切换都master分支

          git merge bug      #将bug分支的修改后的代码合并到master上

          git push origin master  #将本地master分支的代码推到远程

          git checkout dev    #切换到修改代码前的分支(原来的代码在dev分支上写的)

          git status        #查看dev分支的状态,发现原来对代码的修改没有了(写了半天,没有保存,心里很慌有没有啊。。。)

          more readme       #查看更久远的操作,发现依然没有。(这是真的有点慌,甚至有点小绝望啊)   

          git stash list        #查看临时保存的文件列表(我擦,找到了,过山车般的体验)

          git stash apply      #恢复到上次保存的位置(终于找到你,还好我没放弃)

          git status        #查看状态,发现一切和好如初(这个世界完美了。可以继续愉快的写代码了)

        git stash的一些其他操作:

          git stash drop     #删除最久的那个使用了git stash 保存的临时状态

          git stash apply stash@{0}    #恢复到指定的那个临时状态

          git stash pop    #恢复并删除上一个临时状态

          (ps: 1.git stash apply 恢复后,stash内容并不会删除,需要使用git stash drop 来删除

              2.另一种方式是使用git stash pop, 删除的同时把stash的内容也删除了)

      场景二:

        多人合作开发,最后把所有人的代码合并到一起,然后测试并推到master中:

          git add *    git commit "success"      #将完成的代码添加到本地仓库,等待合并

          checkout maste    #切换到本地master分支

          git pull         #将远程master分支的代码下载到本地

          git merge dev     #将本地dev中开发的代码合并到master中(这时候发现有冲突。自己的代码和master里最新的代码有不一致的地方,不要慌,我和别人同时修改了原文代码导致的这种问题。下面需要进行手动合并。)

          git status         #查看文件状态,看都有哪些文件有冲突

          git diff views.py    #查看文件冲突的具体情况

          vim views.py      #手动修改文件

          git add views.py  git commit "change_merge"  #添加到本地仓库

          git push origin master    #推送到远程master分支

  • 相关阅读:
    [HDOJ4788]Hard Disk Drive(水题)
    [HDOJ4782]Beautiful Soup(模拟)
    [HDOJ3652]B-Number(数位dp)
    [CF55D]Beautiful numbers(数位dp,状态压缩)
    [HDOJ3555]Bomb(数位DP)
    [HDOJ2089]不要62(数位DP)
    [HDOJ5881] Tea(找规律)
    [HDOJ5900]QSC and Master(区间dp)
    [HDOJ5878]I Count Two Three(暴力枚举,二分)
    [HDOJ5879]Cure(求极限,打表)
  • 原文地址:https://www.cnblogs.com/ppzhang/p/10172909.html
Copyright © 2011-2022 走看看