zoukankan      html  css  js  c++  java
  • Git学习

     
    git init #初始化,产生./git文件夹

    git status # 查看当前文件状态信息

    git status list  # 查看stash 暂存排列状态 ,最新的stash暂存状态会排列在{0}的位置
    

     

    git add .         # 将所有文件暂存到版本库
    git add 文件名 #将指定文件暂存到版本库

    git commit -m '描述信息' #将暂存状态的文件提交到版本库的分支

    git log #查看提交记录

    git reset --hard   #直接回复版本命令
    

    出现bug后,命令的执行顺序

    git stash # 将修改内容暂存到某个区域,回复文件原内容
    

      

    #修复bug后
    git add .                         #将文件内容进行暂存
    git commit -m '描述信息' #将文件内容提交保存
    git stash pop                 #将之前编写内容从暂存区域挪回,可能会出现CONFILICT(content)冲突
    #出现冲突后需要手动进行修改编辑
    #在修改编辑完成之后需要重新提交保存
    git add. 
    git commit -m '描述信息'
    

      

    #CONFLICT(content)冲突
    

      

     创建分支并行开发和修复BUG

    commit master 分支内容
    git branch dev  #创建dev开发分支,dev拥有和master分支相同的内容
    git checkout dev #进入dev分支
    Dev 分支:
    开发未完成时master出现bug
    git add .
    git commit -m '开发未完成版本'
    Master分支:
    git checkout master
    git branch bug 
    git checkout bug #创建bug分支,并进入bug分支
    Bug分支:
    修复完成bug后
    git add .
    git commit -m '修复完成bug' 
    切换到master分支与其合并
    git checkout master
    Master分支:
    git merge bug #修复完成后的master内容
    Dev分支:
    git checkout dev  #切换到dev分支继续进行开发
    git add .
    git commit -m '开发完成' #开发完成进行提交
    Master分支:
    git checkout master #切换到master分支,与dev合并,增加开发后的内容
    git merge dev 
    

      远程repository

    公司:
        创建远程仓库
        编写代码
        git add .
        git commit ...
        git remote add orgin 仓库地址 
        git push origin master
    家:
        git clone 远程仓库地址  #将在公司编写的代码下载到家中电脑
        git add .
        git commit ...
        git remote add github 仓库地址
        git push github master 
    公司:
        git pull origin master
        git add .
        git commit ...
        git push origin master #如果这步忘记做了
    家:
        根据记忆继续编写代码
        git add .
        git commit...
        git push github master
    公司:
        git pull github master #这时可能会出现冲突,需要手动解决冲突
        #继续编写代码
        git add .
        git commit ...
        git push origin master
            
    

      git pull origin master 可以写为:

        git fetch origin master

        git merge origin/master    <=>    git rebase origin/master 为了区分,git会在分支master前加上链接别名

     

    合作开发

    collaborator:

    Orginazation

    创建程序:

      用户A创建程序,提交到GitHub

      用户B克隆项目

      用户C克隆项目

    开发功能:

      用户A开发功能1

      用户B开发功能2

      用户C开发功能3

    提交

      用户A提交功能1,并push

      用户B提交功能2,无法Push,因为已经有用户A提交过了代码,需要将Github上获取最新代码与本地代码进行合并再进行提交

      用户C与用户B情况一样

    合并的方式有两种,前者版本记录会出现合并,后者可以保证版本记录干净整洁:

      git pull origin master 然后 git push origin master

    用户A:
        file
        git add .
        git commit -m '功能4'
        git push origin master
    用户B:
        file
        git add .
        git commit -m '功能5'
        git push origin master # 报错,因为GitHub中已经有人提交新代码
        git pull origin master
        git push origin master
    

      git fetch origin master 然后 git merge origin/master 再 git push orgin master

    用户A:
        file
        git add .
        git commit -m '功能4'
        git push origin master
     
    用户B:
        file
        git add .
        git commit -m '功能5'
        git push origin master # 报错,因为GitHub中已经有人提交新代码
        git fetch origin master
        git rebase origin/master
        git push origin master   
    

     贡献代码

    找到想要编写的项目,fork一下,之后这个项目就会在自己仓库出现

    从自己仓库获取代码并进行编辑

    创建一个pull request,等待作者是否同意,作者同意之后源代码就会出现贡献者提交的功能

     配置文件

    系统配置:/private/etc/gitconfig

    用户配置:~/.gitconfig  全局配置文件

    项目配置:.git/config

    用户凭证

    使用SSH减少频繁输入用户密码的情况

    ssh-keygen -t rsa命令来创建密钥,将id_rsa.pub公钥的内容拷贝到Github下设置中的SSH KEY中

    如果出现Key already in use的情况:

      删掉原来的SSH密钥   cd ~/.ssh

                rm id_rsa id_rsa.pub

      重新生成密钥    ssh-keygen.exe

             cat id_rsa.pub

     忽略文件

    在.git/文件夹下创建.gitignore文件,在其中编写的文件名就是git忽略的文件类型

    test/[abc].py				
    [abc]					
    test/*
    !test/a.py					
    .idea/*
    *.pyc
    *.excel
    

      

  • 相关阅读:
    PowerShell2.0之Windows排错(六)检查网络故障
    确保数据安全是云计算取信于用户的关键
    企业发展如何借助“云的力量”
    PowerShell2.0之维护网络(三)设置网络适配器
    Feign最佳实践
    Nacos注册中心原理
    GateWay网关快速入门
    Nacos集群搭建
    Feign快速入门
    Feign的性能优化
  • 原文地址:https://www.cnblogs.com/c491873412/p/7544034.html
Copyright © 2011-2022 走看看