zoukankan      html  css  js  c++  java
  • git 基础操作

    git 中分工作区、缓存区、本地库以及远程库几部分。其中,修改本地文件后,通过git add xx文件将修改保存到缓存区,之后再用commit推送修改到本地库中,最后用git push 将本地仓库中的修改推送到服务器上的仓库中。

    提交代码的过程:

    • git status 查看本地修改的文件状态
    • git add 文件名,多个文件时用空格分隔,所有文件有.代表
    • git commit -m "comments " 提交代码到本地库,其中-m 指修改说明
    • git push origin 分支名,提交代码到远程分支库
    • 进stash找到你的分支,点commits来看你提交成功了没有
    • create pull request 去最终提交你的代码,其中diff 可以看你的不同

    常用git 命令

    git配置:

    • git是分布式版本控制系统,安装好git后,需要在终端通过以下命令设置邮箱和用户名:
    • git config --global user.email "xxxx@xxx.com"
    • git config --global user.name "xxxx"
    • 查看配置:git config -l

    git stash/clean/log/diff:

    • git stash 把所有没有提交的修改暂存到stash里面,可用git stash pop恢复。git stash 只能缓存在git库中已经被追踪的文件,若文件是新增的没有添加到git中,使用git stash不会缓存该文件
    • git clean -df 删除工作目录中没有被tracked的文件和文件夹,例如新增文件/文件夹
    • git clean -n是一次clean的演习, 告诉你哪些文件会被删除,但不会真的删除
    • git log /git log --pretty=online 查看提交记录
    • git log -n 查看最近n次的修改记录,n为数字
    • git diff 不加参数,对比的是工作目录与缓存区快照之间的差异

     git checkout/reset/rebase/pull:

    • git checkout放弃本地修改,即没有使用git add提交的修改(用法:git checkout -- filename或者git checkout .),但它也只能放弃在git库中已追踪的文件的修改,若是新增文件或目录,则需要手动删除。
    • git reset --hard origin/master 把HEAD指向master最新版本,将origin/master换成commitId,即可将本地库代码会退到指定commit点的状态
    • git rebase -i 将本地的多次提交合并为一个,以简化提交历史,例如:git rebase -i HEAD~4 合并最近四次的提交记录
    • git rebase  仓库名/分支名  将仓库名/分支名的最新的分支同步到本地
    • git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
    • git pull 是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

    git branch:

    • git branch 不带参数:列出本地已经存在的分支,并且在当前分支的前面用"*"标记
    • git branch -vv 查看本地分支对应的远程分支
    • git branch -d dev  删除dev分支,如果在分支中有一些未merge的提交,那么会删除分支失败,此时可以使用 git branch -D dev:强制删除dev分支,
    • git branch -m oldName newName 给分支重命名,如果 new_branch 名字分支已经存在,则需要使用-M强制重命名
    • git checkout -b feature  创建并切换分支。在当前分支中做的修改,通过该命令创建并切换分支后,在新分支中也会保留
    • git branch dev 创建名为dev的分支,创建分支时需要是最新的环境,创建分支但依然停留在当前分支
    • git branch -r 查看远程版本库分支列表
    • git branch -a 查看所有分支列表,包括本地和远程

    如何修改本地分支名和远程分支名:

    情景:将分支名由Branchrelease-4.0.4.x改为release-4.0.4.x1

    1. 将本地旧的分支名Branchrelease-4.0.4.x改为新的分支名release-4.0.4.x1 :git branch -m Branchrelease-4.0.4.x release-4.0.4.x1 
    2. 本地分支修改后通过git branch -vv命令看到远程分支名还是origin/Branchrelease-4.0.4.x,所以还需要更新远程分支名
    3. 删除远程分支git push origin :Branchrelease-4.0.4.x
    4. 创建一个新的远程分支 git push --set-upstream origin release-4.0.4.x1
    5. 查看修改后的分支:git branch -vv 结果是:release-4.0.4.x1      9497a544 [origin/release-4.0.4.x1]

    两种提交代码的流程:

    拉代码:git clone  address -b branch_name  local_folder

    1.先更新本地代码为最新代码,再修改本地代码,提交改动

    • 在提交代码前将本地分支中的代码更新为最新master中的代码:
    • git checkout master 
    • git pull
    • git checkout branch_name
    • git rebase master
    • 然后修改本地代码后,使用git add . ,git commit  -m "comment",git push origin branch_name提交

    2.先提交本地代码到本地库,再将master中的最新分支同步到本地库,最后提交改动到远程库

    • 先提交本地代码到本地库,然后将master中的最新分支同步到本地库,再提交代码到本地库:
    • git add .
    • git commit -m "comment"
    • 将master中的最新分支同步到本地库 
    • git checkout master 
    • git pull
    • git checkout branch_name
    • git rebase master
    • 使用git status查看本地代码的状态
    • git push提交代码到远程库
  • 相关阅读:
    怎样让人的一生价值最大
    [LeetCode][Java] Minimum Depth of Binary Tree
    KVC和KVO
    js获取单独一个checkbox是否被选中
    It's not a Bug, It's a Feature! (poj 1482 最短路SPFA+隐式图+位运算)
    超声波测距温度补偿
    系统封装接口层 cmsis_os
    STM32F4XX高效驱动篇2 I2C
    Stm32f103 ADC 学习笔记
    Stm32f103 DAC 学习笔记
  • 原文地址:https://www.cnblogs.com/mianbaoshu/p/12010743.html
Copyright © 2011-2022 走看看