• git常用命令与操作


    参考:https://www.cnblogs.com/wupeiqi/p/7295372.html

    设置账号

    commit之前要先设置账号
    
    git config --global user.email 'xx@xxx.com'
    git config --global user.name 'xxx'

    git常用命令

    git init                          初始化,表示即将对当前文件夹进行版本控制。
    git status                        查看Git当前状态,如:那些文件被修改过、那些文件还未提交到版本库等。
    
    git add <文件>                     将指定文件添加到版本库的暂存状态。
    git add .                         将全部文件添加到版本库的暂存状态。
    git checkout <文件>                从暂存状态拿回工作区
    git commit -m '提交信息'           将暂存区的文件提交到版本库的分支。
    git commit -a -m '提交信息'        ====> 相当于两条命令: 1 git add .   2 git commit -m '提交信息'
    
    git log                            查看提交记录,即:历史版本记录
    git reflog                         查看版本历史(更详细)
    
    git reset --hard <版本号>           回到某一个版本

    git stash和git branch

    方式一 git stash

    git stash             将工作区(红色的文件)的文件暂存都"某个神奇的地方"
    git stash pop         将"某个神奇的地方"的第一个记录拿到当前工作区
        1 自动合并
        2 出现冲突(需要手动解决冲突)
        
    git stash list                 查看'某个神奇的地方'存储的所有记录
    git stash clear                清空'某个神奇的地方'
    git stash apply <编号>          将指定编号的记录拿回工作区
    git stash drop <编号>           将指定编号的记录从工作区删除

    方式二 git branch

    注意:千万不要在master分支上做开发

    git branch <分支名>            【在当前分支上】创建分支
    git checkout <分支名>        切换分支
    git branch -d <分支名>        删除分支
    git merge <分支名>            将分支合并到当前分支
        会产生一条合并记录
        可能会产生冲突(如果两个分支都修改了同一条记录)
    git branch                    查看分支

    合并分支时的三种情况?

    1 【直接合并】主分支有的功能, 子分支都有, 并且子分支开发了新功能
    2 【会产生一条合并记录】主分支有的【部分】功能, 子分支没有, 并且子分支开发了新功能
    3 【会产生冲突,需要自己手动去处理冲突】主分支和子分支修改了同一条代码

    本地与云端的交互

    代码托管的网站: github Bitbucket 码云
    自己创建代码托管的网站: gitlab

    1 git remote add origin https://github.com/....            将远程仓库添加个别名        # origin就是后面仓库地址的别名
    2 git push -u origin master                                把master推到origin远程仓库
    3 git clone <仓库地址>                                      下载仓库代码
    4 git pull origin dev                                      把分支dev拉取到本地(注意:先自己在本地建个分支dev)
    
    git fetch origin dev         将远程分支拉倒本地版本库
    git merge origin/dev         将本地origin/dev合并到工作区        ===>  上面两条命令相当于:  git pull origin dev
    
    git rebase origin/dev        (==> 相当于git merge origin/dev, 但这是去看合并历史不会出现分叉)        # 保持提交记录的整洁

    git之多人协同开发

    1 允许他人操作程序
      - 合作者 (仓库-->setting-->collaborators)
      - 创建组织 (new organization)

    2 分支
      - master
      - dev
        - sch
        - xdb

    3 协同开发规则
      一起合并
      合并时间:(一般1-2天)小功能开发好了合并一次

      问题: git push origin dev 可能会报错
      解决办法:先 git pull origin dev 拉取代码

      创建review分支

    给别人代码贡献力量

    问题: 怎么在github上给别人代码添加功能?

    1 fork
    2 添加完功能
    3 pull request

    其他

    1 不用反复输入用户名密码

    方式一: https

    git remote add origin https://用户名:密码@github.com/......

    方式二: ssh

    1 先在本地电脑生成公钥私钥: ssh-keygen.ext
    2 把公钥到github上设置
    3 通过git@github.com:...下载仓库代码

    2 创建忽略文件

    1 项目目录下: vim .gitignore

    # Byte-compiled / optimized / DLL files
    
    # pycharm
    .idea/
    .DS_Store
    offline-script/
    media/
     
    # database migrations
    */migrations/*.py
    !*/migrations/__init__.py
     
     
    __pycache__/
    *.py[cod]
    *$py.class
     
    # Django stuff:
    *.log
    local_settings.py
    *.sqlite3
     
     
    # C extensions
    *.so
     
    # Distribution / packaging
    .Python
    build/
    develop-eggs/
    dist/
    downloads/
    eggs/
    .eggs/
    lib/
    lib64/
    parts/
    sdist/
    var/
    wheels/
    *.egg-info/
    .installed.cfg
    *.egg
    MANIFEST
     
    # PyInstaller
    #  Usually these files are written by a python script from a template
    #  before PyInstaller builds the exe, so as to inject date/other infos into it.
    *.manifest
    *.spec
     
    # Installer logs
    pip-log.txt
    pip-delete-this-directory.txt
     
    # Unit test / coverage reports
    htmlcov/
    .tox/
    .coverage
    .coverage.*
    .cache
    nosetests.xml
    coverage.xml
    *.cover
    .hypothesis/
    .pytest_cache/
     
    # Translations
    *.mo
    *.pot
     
     
    # Flask stuff:
    instance/
    .webassets-cache
     
    # Scrapy stuff:
    .scrapy
     
    # Sphinx documentation
    docs/_build/
     
    # PyBuilder
    target/
     
    # Jupyter Notebook
    .ipynb_checkpoints
     
    # IPython
    profile_default/
    ipython_config.py
     
    # pyenv
    .python-version
     
    # celery beat schedule file
    celerybeat-schedule
     
    # SageMath parsed files
    *.sage.py
     
    # Environments
    .env
    .venv
    env/
    venv/
    ENV/
    env.bak/
    venv.bak/
     
    # Spyder project settings
    .spyderproject
    .spyproject
     
    # Rope project settings
    .ropeproject
     
    # mkdocs documentation
    /site
     
    # mypy
    .mypy_cache/
    .dmypy.json
    dmypy.json
    .gitignore

    2 可以在创建github仓库时选上

    3 版本

    git tag -a v1.0 -m '版本介绍'        本地创建Tag
    git show v1.0                        查看
    git tags -n                          查看本地Tag
    git tag -l 'v1.4.2.*'                查看本地Tag,模糊匹配
    git tag -d v1.0                      删除Tag
    git push origin :refs/tags/v0.2      更新远程tag
    git checkout v.10                    切换tag
    git fetch origin tag V1.2
    
    git push origin  --tags
    git pull origin  --tags
    
    git clone -b v0.1
  • 相关阅读:
    容器编排之rancher
    ActiveMQ安装配置
    Ansible Playbook
    AnsibleTower
    Ansible Configuration file
    jenkins报错jdk1.8/jre/lib/amd64/libawt_xawt.so
    Nexus安装配置
    maven 国内可用的中央仓库 阿里云
    jenkins Master stays offline if low disk space
    win版tesseract安装
  • 原文地址:https://www.cnblogs.com/sunch/p/10409379.html
Copyright © 2020-2023  润新知