zoukankan      html  css  js  c++  java
  • git相关知识

    git官方网站: https://www.git-scm.com/

    官方的中文文档:https://www.git-scm.com/book/zh/v2

    1. yum安装

    yum install git -y

    2. 配置git通常只是需要知道你是谁,你的邮箱即可(color.ui 是可选项)

    git config --global user.name "myname"
    git config --global user.email "myemail@email.com"
    git config --global color.ui true

    git config --global user.name 后面什么都不接,就是查看用户名

    git config --global user.email 后面什么都不接,就是查看邮箱

    配置结束后, 会在用户家目录创建一个.gitconfig的隐藏文件

    3. 建立仓库(初始化)

    a) 在某个目录创建一个自定义文件夹

    b) 进入这个文件夹

    c) 运行git init来初始化,初始化结束后,会在当前目录下,产生一个.git的隐藏文件夹

    4. git常用命令

    git add filename1 #把filename1提交到暂存区
    git add .    #把当前仓库目录下的所有文件提交到暂存区
    git commit -m "my comments" #-m 后面连接提交的备注信息
    git status
    git diff filename #工作区和暂存区比较
    git diff --cached filename  #暂存区和仓库内的文件比较
    
    git rm filename1
    git mv filename 1 filename2 #文件改名字

     5. 如何理解commit , 其实相当于对文件做了一个快照

    如何查看已经提交的commit 记录,用git log, 每次commit的一个编号

    git log

    git log --oneline #和git log有不一样的显示格式,每次提交用一行来显示

    git log -1  #看最近的一条commit记录

    git log -2 #看最近的两条commit记录

    git checkout -- filename1 #使用以前提交至暂存区的内容覆盖本地工作目录

    git reset HEAD filename1 #本地仓库覆盖暂存区

    git reset --hard a3cc59e #回退到commit ID 'a3cc59e' , 直接把工作区的内容退回到a3cc59e的状态(commit ID 可以通过git log --oneline查看获取

    git reflog #通过这个命令可以看到所有的操作记录包括回退相关的记录

    git branch #查看当前分支

    git branch devops #创建名称为devops的分支

    git branch -r -d origin/branch-name # 删除本地仓库的分支branch-name

    git push origin :branch-name  #删除远程仓库的分支branch-name

    git checkout devops #切换到devops分支

    git checkout master #切换到master分支

    如何合并分支
    由于master的内容已经不再是之前切换分支时的内容了
    1. 在devops分支上去合并master
    git merge master -m "分支合并master"
    2. 功能测试
    3. 切回master, 然后将devops所有内容合并
    git checkout master
    git merge devops -m "master合并分支"

    git push origin master

    git标签(将一个好记的名称关联一个不好记的commitID)
    #1. 创建标签
    git tag -a "v1.0" -m "描述信息"

    git tag -a "v0.1" a3cc59e -m "项目beta版本"  #指定某个commit ID打标签

    git push origin v0.1 把新建的tag v0.1 推送到远程

    #2. 查看标签
    git tag #查看所有的标签

    git tag -l
    git show v1.0

    #3.git删除tag标签

    git tag -d v1.0 #删除本地上的标签v1.0

    git push origin  :refs/tags/v1.3 #删除远程上的tag标签v1.3

    git push origin :v1.005 #删除远程仓库的v1.005 分支 

     #4.Git pull 强制拉取并覆盖本地代码

    git fetch --all

    git reset --hard origin/master

    git pull origin master

    1. 如何关联远程仓库(添加)
    git remote add origin http://gitXXX.com/gitadmin/xxxapi.git #origin是远程仓库的用户名
    git remote #查看远程仓库的用户名
    git remote -v #查看远程仓库的地址

    2. 如何推送本地仓库内容至远程仓库

    git add .

    git commit -m "备注信息"

    git push -u origin master #推送本地资源到远程仓库

    发现上面用了这个-u参数,也没作解释,特意搜索了下这个-u的用法,加了参数-u后,以后即可直接用git push 代替git push origin master

    3. 如何删除远程仓库关联信息
    git remote remove origin #删除以origin为用户名的远程仓库信息

    git修改远程仓库地址 

    方法有三种:
    1.修改命令
    git remote set-url origin [url]
    2.先删后加
    git remote remove origin
    git remote add origin [url]
    3.直接修改config文件 

    Git仓库完全迁移,包括所有的分支和标签,当然也包括日志

    以下四行代码

    #git clone --mirror <URL to my OLD repo location>
    #cd <New directory where your OLD repo was cloned>
    #git remote set-url origin <URL to my NEW repo location>
    #git push -f origin
    如果是用gitlab需要关闭master分支保护

    1. 如果有新开发人员加入进来怎么办?
    git clone http://gitXXX.com/gitadmin/xxxapi.git
    touch file01.txt
    git add .
    git commit -m "new file file01.txt is added"
    git remote -v
    git push -u origin master #提交到远程仓库


    2. 我如何查看到新员工提交的代码呢?
    git pull origin master

    git提交和比对

    git commit 和回退

    (dev)$: git checkout -b feature/xxx            # 从dev建立特性分支
    (feature/xxx)$: blabla                         # 开发
    (feature/xxx)$: git add xxx
    (feature/xxx)$: git commit -m 'commit comment'
    (feature/xxx)$: git checkout -b dev
    (dev)$: git merge feature/xxx --no-ff          # 把特性分支合并到dev

     git解决冲突问题

    来自转载 https://www.cnblogs.com/wxf960320/p/9900346.html

    git pull 之后merging冲突解决

     

    一、出现merging冲突的原因:git远程上存在一个本地不存在的git 分支,就是本地远程代码不同步

    二、解决方式:

    方法一:

    git pull 出现冲突后可以暂存本地修改git stash ,然后git pull 更新代码,git stash list 可查看暂存记录列表,释放本地暂存 git stash apply stash@{0} ,出现冲突文件,找到并解决,然后可以提交git add . 加入索引库,然后本地提交git commit -m '注释' 最后git push到远程

    方法二:

    1.git pull  更新代码,发现

    error: Your local changes to the following files would be overwritten by merge:pom.xml

    Please commit your changes or stash them before you merge.
    这说明你的pom.xml与远程有冲突,你需要先提交本地的修改然后更新。

    2.git add pom.xml   git commit -m '冲突解决'    提交本地的pom.xml文件,不进行推送远程

    3.git pull   更新代码

    Auto-merging pom.xml
    CONFLICT (content): Merge conflict in pom.xml
    Automatic merge failed; fix conflicts and then commit the result.

    更新后你的本地分支上会出现 (develop|MERGING)类似这种标志

    4.找到你本地的pom.xml文件,并打开

    你会在文件中发现<<<<<<< HEAD ,=======  ,>>>>>>> ae9a0f6b7e42fda2ce9b14a21a7a03cfc5344d61

    这种标记,<<<<<<< HEAD和=======中间的是你自己的代码,  =======  和>>>>>>>中间的是其他人修改的代码

    自己确定保留那一部分代码,最后删除<<<<<<< HEAD ,=======  ,>>>>>>>这种标志

    5.git add pom.xml    git commit -m '冲突解决结束'   再次将本地的pom.xml文件提交

    6.git push   将解决冲突后的文件推送到远程

  • 相关阅读:
    addEventListener事件委托
    ES6的解构赋值
    JavaScript 中最​​重要的保留字
    HTML 5 Web 存储
    Node.js 里的 process.nextTick(),简单理解
    实现多层DIV叠加的js事件穿透
    touch事件中的touches、targetTouches和changedTouches详解
    Promise.all( ) 的使用
    js 中的五种迭代方法
    迭代
  • 原文地址:https://www.cnblogs.com/faberbeta/p/git001.html
Copyright © 2011-2022 走看看