• Git操作


    git 基本操作

    git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。
    git字段知识点:
    
    git init                  ---->初始化
    
    git add manage.py         ---->提交单个文件
    
    git add .                 ---->提交所有文件
    
    git commit -m "all file"  ---->提交注释
    
    git status                ---->状态
    
    git ls-tree head          ---->查看版本中所有文件
    
    git ls-files -s           ---->查看暂存区和版本中所有文件
    
    git log                   ---->查看日志
    
    git reflog                ---->查看所有日志
    
    git stash                 ---->将当前修改的内容保存到一个地方
    git reset  版本号         ---->默认等于git reset --mix 版本号
    
    <----配置用户信息---->
    
    git config --local user.name '名称'
    
    git config --local user.email '邮箱'
    
    <----回滚---->
    
    git log
    
    git reset --head 2b349bf
    
    <----查看所有日志回滚---->
    
    git reflog
    
    git reset --head 2b349bf	
    

    回滚

    具体操作

    方式一: (三步操作)
    
        git reset --soft 版本号  ----》从分支回到暂存区
    
        git reset head 文件      ----》从暂存区回到修改过的内容
    
        git check out  文件      ----》从修改过的文件到原文件
    
    方式二: (两部步操作)
    
        git reset --mix 版本号   ----》从分支回到修改过的内容 == git reset 版本号 
    
        git check out  文件      ----》从修改过的文件到原文件
    
    方式三: (一部步操作)
    
        git reset --hard 版本号  -----》从分支回到原文件 
    	

    2017-12-06

    案例一

    《----开发短信功能提交,之后会退到短信之前的功能,最后再次回到短信功能----》
    	
    		--开发短信功能
    			创建msg.txt文件
    			git add .
    			git commit -m '开发短信功能'
    					
    		--回滚(无短信功能):
    			git log 
    			git reset --hard 版本号
    			
    		--再次回到短信功能:
    			git reflog
    			-- 底下两部操作等于 git reset --hard 版本号  

                  git reset --mix 版本号

                  git checkout 文件名

            
                             

    案例二

    stash 将工作区做的所有修改(做到一半的操作)保存到一个临时地方
    
        - 正在写代码(a.txt),发现线上代码(a.txt)有bug,先把现在代码保存到临时空间
    
        - 修改完bug(a.txt)提交,再次取回之前保存的文件,这时发现之前保存的代码和提交的bug是同一个文件,有冲突
        - 这时(a.txt)中两者都保留,手动保留想要的代码,再次提交 
    ---现在写的代码保存
        git stash  
        --修改bug再次提交 
        bug....
        git add .
        git status
        git commit -m "修改完bug"
        git status
        --切回之前保存的状态
          -- 如果修改的文件和保存的文件是同一个文件,则此文件中会保留两者的代码,需手动改回自己需要的代码
          --如果不是同一个文件,则直接提交
        git stash pop
        git add .
        git status
        git commit -m "bug上又一次修改"
    	
    

    分支

    dev        负责开发新功能
    
    bug        负责修复线上的bug
    
    master    线上代码
    
    ###分支
    
        #dev分支
        git branch
            dev
          * master
        git branch dev 
        git branch
        git checkout dev
        git branch
          * dev
            master
    
    
        #bug分支
        git branch bug
        git branch
            bug
            dev
          * master
        git branch bug
        git checkout bug
        git branch
          * bug
            dev
            master
    
        #修改完bug 把bug分支和master合并
        git checkout master
        git merge bug

    远程仓库

    #本地代码推送到远程仓库
    
     
    
    git remote add origin https://github.com/oyoui/test.git  #设置远程仓库并设置别名origin
    
    git checkout master
    
    git push origin master    #推送到master分支
    
     
    
     
    
    #从远程仓库拉代码
    
     
    
    git clone https://github.com/oyoui/test.git
    
    cd test/
    
    git branch          #只下载master分支
    
        #* master
    
    git branch  -a      #查看所有分支 有远程的分支
    
        * master
    
          remotes/origin/HEAD -> origin/master
    
          remotes/origin/dev
    
          remotes/origin/master
    
    git branch dev origin/dev       #拉远程分支的代码
    
    git branch
    
            dev
    
        *  master
    

      

    公司:
            git remote add origin https://github.com/a877252372/wwwww.git
            
            git checkout master
            git push origin master  # 推送
            
        回家:
            git clone https://github.com/a877252372/wwwww.git
            
            cd wwwww
            
            git branch dev origin/dev
            git checkout dev 
            写代码
            
            git add .
            git commit ...
            git push origin dev
            
        公司:
            git checkout dev
            #选其中一个
            git fetch origin dev    #从远程拉到本地的仓库 还需要    git reset --hard 文件        
            git pull origin dev       #从远程拉到原文件
            
            #----------提交成功完成-----------
            功能11
                git add .
                git commit ...
                git push origin dev
            #----------忘记提交,下班回家-------
            功能12:
                git add .
                git commit ...
                git push origin dev
        回家:
            git branch dev
            git pull origin dev
            功能13:
                git add .
                git commit ...
                git push origin dev
        
    
        #现在处于功能12没有提交的状态
        #先拉代码查看功能13和功能12是否有冲突,如果有冲突,手动修改 不能直接提交        
        公司:
            获取代码,
                git pull origin dev
                
                无冲突:过
                有冲突:
                    手动解决
                    git add .
                    git commit -m '解决冲突'

    创建新项目

    1.githup 上创建项目plug
    
     
    
    2. 本地操作
    
        cd /Users/PycharmProjects/plug
    
        git init
    
        git remote add origin https://github.com/wanghao/plug.git
    
        vim README.md
    
        git status
    
        git add .
    
        git status
    
        git commit -m "增加(需要修改) 编辑"
    
        git config --global user.email “oyoui@qq.com”
    
        git config --global user.name "oyoui"
    
        git push origin master
    
        git commit -m "增加(需要修改) 编辑"
    
        git push origin master
    
    http://blog.csdn.net/javyzheng/article/details/50311175#使用git工作的一般流程
    第二版本
    git init   -----初始化文件夹
    	git config --global user.email "you@example.com"
    	git config --global user.name "Your Name"
    	
    	开发一:
    		git add .
    		git commit -m "描述信息...."      ----》增加到版本库
    		git log         -----》查看版本库中的日志
    		
    		
    	开发二:
    		git add .
    		git commit -m "描述信息...."
    		git log
    		git resert --head   -----》切换到功能一
    		
    	
    	切换到功能二
    	git reflog      -----》查看所有版本库
    	git resert --head
    	
    阶段二
    	开发功能一:
    		git add .
    		git commit -m "描述信息...."
    		
    		继续开发 发现之前的功能一需要修改,保存现在代码
    		git stash    -----》现在的代码
    		
    		完成功能一
    		git log  -----》功能一
    		git resert --head  ----》切换到功能一
    		git add .
    		git commit -m "描述信息...."
    		
    		继续开发,发现与之前的有冲突,手动解决冲突
    		git stash pop
    		get add .
    		git commit -m "描述信息...."
    		
    场景三
    	
    	我在家
    		.....
    		git add .
    		git commit -m"test"
    		git pust origin dev  ----》推送 ,上传
    		
    	我在公司
    		git pull origin dev  ----》下载
    		......
    		git add .
    		git commit -m "test"
    		忘记推送
    		
    	我在家
    		git pull origin dev 
    		发现之前写的代码忘记推送,很无奈,只能凭借记忆来写其他功能例如
    		
    		.......
    		git add .
    		git commit -m "test"
    		git push origin dev
    		
    	我在公司
    	
    		git pull origin dev
    		
    		解决冲突
    		git add .
    		git commit -m "test"
    		git pust origin dev
    		
    第一次拉代码的三种方式
    	...方式一
    		git clone 网址  ----》此时只有master分支
    	...方式二
    		git init
    		git remote add origin 网址 
    		git pull origin master  ----》拉到工作区
    	...方式三
    		git init 
    		git remote add origin  网址
    		git fetch origin master   ---->拉到分支
    		git merge origin/master
    		
    第二次
    
    	...方式一
    		git pull origin master   ---->拉并且合并
    	...方式二
    		git fetch origin master  ---->拉到分支
    		git merge origin/master  ---->合并
    
    分支
    	master 分支
    	dev 分支
    	bug 分支
    	
    	我在dev上开发功能
    	
    		git branch dev   -----》创建dev分支
    		git branch    -----》查看分支
    		git checkout dev  ----》切换分支
    		git add .
    		git commit -m "描述信息..."
    	
    	发现线上有bug 修复bug
    		git branch master
    		git branch bug
    		git add .
    		git commit -m "修复bug"
    	合并
    		git branch master
    		git merge bug
    	此时master和bug有相同的代码  删除bug分支
    		git branch -d bug
    	在分支上继续开发
    		git checkout dev  ---->切换分支
    		git add .
    		git commit -m "..."
    	此时需要上线 开发分支需要和master合并
    		git checkout master ----->切换分支
    		git merge dev
    
    		
    阶段三		
        协同开发
            - 项目协作者
            - 组织
    
    
    我和朋友同时开发
    
    
       先在自己分支开发 开发完成后推到远端
    
            git clone ....
    
            git branch dev
            git branch review
            git branch xiaoming
    
            git pull origin dev
            git pull origin review
            git pull origin xiaoming
    
            git checkout xiaoming
            .......
            git add .
            git commit -m ""
            git push origin xiaoming
    
    
        同事合并  把自己代码合并到review
    
            git checkout review
            git pull origin review
            git merge xiaoming
    
            git status
            git push origin review
    
        我合并
    
            git checkout review
            git pull origin review
            git merge xiaoqiang
    
            git status
            git push origin review
    
        此时我版本是最新的 同事操作
    
            git pull origin review
    
    
    
    阶段四
        
        - fork
    
    注意事项
    
        - 忽略某些文件    https://github.com/github/gitignore/blob/master/Python.gitignore
            vim .gitignore
    
        - 认证
            - https
            - ssh
    

      

     
  • 相关阅读:
    spark internal
    74LS153 选择器 【数字电路】
    Linux(centos)下mysql编译安装教程
    Android画布更新过程OnDraw调用过程
    Android中使用ContentProvider进行跨进程方法调用
    hdu5414(2015多校10)--CRB and String(字符串匹配)
    徒弟们对话,遇到sb领导,离职吧
    【Cocos2d-x 017】 多分辨率适配全然解析
    编程精粹--编写高质量C语言代码(4):为子系统设防(一)
    为SSD编程(4)——高级功能和内部并行
  • 原文地址:https://www.cnblogs.com/wanghaohao/p/7993245.html
Copyright © 2020-2023  润新知