zoukankan      html  css  js  c++  java
  • git的基本使用

    1)下载安装git 

    2)配置git信息

      git config --global user.name "XXXXX"
      git config --global user.email "XXXXX"
      查看当前用户配置信息: git config  --global  --list

     3)  git的工作流程一般是

    a:)在工作目录中添加,修改文件
    b:)将需要进行版本管理的文件放入暂存区域  
         git add "文件名"  / git add . 添加所有修改
    c:)将暂存区的文件提交到git仓库 
         git commit -m  “备注信息”

    工作区 - 暂存区 - 仓库

    如果你在工作区添加了新文件,就要使用 git add . [将所有新增文件加入跟踪状态]
    然后使用 git commit -m "备注",否则commit 不了
    直接git commit -am "备注" 也不行,对于新添加的文件,必须先git add .

    如果你修改了已经被跟踪的文件,要先使用 git add .
    在使用git commit -m "备注",否则commit 不了
    当然可以直接使用 git commit -am "备注"

    因此在实际项目开发中,总是有修改文件,和添加文件同时存在,因此可以使用
    git add .
    git commit -m "备注" 【或者 git commit -am "备注"】

    4)常见命令

    git status  查看当前文件状态
    git reset HEAD  可以将上次add 的文件恢复到add 前
    git checkout . 丢弃所有更改
    git checkout -- 文件名  丢弃指定文件
    git log 查看提交记录

    5)回到过去

    如果发现提交文件有错误,可以使用git reset HEAD~ 来进行回退暂存区的文件内容【只是针对提交的文件】
    1)git  [mixed] reset HEAD~2: 回退2步  n回退n步
    移动HEAD指向,将其指向上一个快照
    将HEAD移动后指向的快照回滚到暂存区域
    
    demo:
    在一个文件中我们分别修改三次,也add ,commit 了三次
    然后使用 git reset HEAD~ 这个时候,我们的暂存区的文件是恢复到了第二次提交后的状态,但是本地的文件还是最终的那个版本
    本地文件待添加至“暂存区”
    
    2)git  reset --soft HEAD~ 【相当于撤销上一步的commit】
    移动HEAD 指向,将其指向上一个快照【本地文件已经被提交至暂存区】
    
    3)git reset --hard HEAD~ 
    移动HEAD指向,将其指向上一个快照
    将HEAD移动后指向的快照回滚到暂存区域
    将暂存区文件还原到工作目录【即修改了本地文件,丢弃了你修改的最新文件】

    4)回滚个别文件
    git reset 文件名/路径 但是不会改变指针

     5)想前滚

    有可能在在项目操作的时候使用了git reset --hard HEAD~  造成文件丢失,但是我们可以使用git  reset --hard 版本快照

     6)删除文件

     删除工作区,以及暂存区文件
     git rm  file.name
    
     删除暂存区,保留工作区: 
    git rm --cached file.name
     
    强制删除: git rm -f filename

    如果一个文件被错误的commit 到至缓存区

    git rm fileName 

    git reset soft --HEAD~

    7)重命名

     git mv oldFilename newFileName

     8)有时候进行rebase 操作的的时候回发生冲突,这个时候会使用git rebase --skip 会发生文件丢失的问题

    1.找回丢失的commit,几下那个commit id xxxx
    git reflog
    
    2.创建一个分支
    git checkout -b recovery xxxxx

    9)其他的补充

    查看本地分支:git branch 

    看所有分支:git branch -a

    创建分支: git branch 分支名字

    切换分支: git checkout 分支名字

    git checkout -b feature

    合并分支: git merge 分支名字 【将分支合并当前分支】

    删除本地分支:git branch -d 分支名字

    删除远程分支: git push origin --delete 名字

    git add 的几种参数区别
    保存所有的修改: git add -A 
    保存新的添加和修改,但是不包括删除git add . 
    保存修改和删除,但是不包括新建文件git add -u

    10)常规操作

    1)服务器拉去代码  
        git clone "地址"
    
    2)创建本地分支并且关联远程分支release
        git checkout release
    
    3) 更新本地代码,拉去release
        git pull --ff
    
    4) 创建本地分支,并切换到feature
        git checkout -b feature
        git checkout feature 
    
    5) 提交本地代码至feature分支
        git commit -a -m "XXXX"
    
    6) 切换至develop 获取代码,并且返回feature(避免develop 分支上的冲突)
        git checkout release
        git pull --ff
        git checkout feature
    
    7) 合并分支         
        git rebase release
    
    8) 切换至develop 合并分支
        git checkout release
        git merge --no-ff feature
    
    9)提交代码
        git push
    
    遇到冲突: 手动解决,然后
    git commit -a -m "deal conficlt"
    git rebase --continue  
      ----apply '.....'表示合并成功-----
    git rebase --skip
    git rebase develop
    git checkout develop
    git merge --no-ff feature
              
    git config core.ignorecase false关闭git忽略大小写配置,即可检测到大小写名称更改
  • 相关阅读:
    jetbrains 官网进不去以及webstorm、node下载慢的问题
    因为后端 xss 全局过滤器导致的 jquery ajax post 提交的数据全部为null的问题
    华为jdk镜像地址
    shiro解决两个请求的sessionId相同,但是某一个传入sessionId之后找不到session的原因
    推荐一个好的webapp的服务,支持android/ios/小程序打包,集成了大量本地api
    对前后端分离的一些经验记录
    「caffe编译bug」python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: No such file or directory
    「caffe编译bug」 undefined reference to `boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::__cxx11
    「caffe编译bug」.build_release/lib/libcaffe.so: undefined reference to cv::imread
    python的sorted函数对字典按value进行排序
  • 原文地址:https://www.cnblogs.com/evaling/p/9159047.html
Copyright © 2011-2022 走看看