zoukankan      html  css  js  c++  java
  • Git常用命令

    参与组内的自动化平台编码时,开始接触到git的使用(以前自己也把代码提交到github,但都是用gui)。

    总结了一些平时会用到的命令,随时补充。

    概念

    当前版本叫HEAD。当前分支的上一个版本叫HEAD^, 上上个版本叫HEAD^^,上一百个版本叫HEAD~100

    本地代码管理

    版本回退

    git reset --hard HEAD^

    版本前进到某个回退前,在当前版本之后的版本

    git reset --hard commitId

    查看版本记录

    git reflog

    把文件在工作区的修改撤销。回到最近一次commit或add时的状态

    git checkout -- fileName

    add之后撤销暂存区的修改(unstage)

    git reset HEAD fileName

    创建本地分支并打开  git checkout -b 分支名

    强制删除本地分支(使用此命令时,必须没有在checkout这个分支)  git branch -D 分支名

    查看commit历史  git log

    取消代码修改,抹掉所有修改记录   git reset --hard HEAD

    查看具体变更内容  git diff 文件名

    远程仓库

    存在本地库,关联远程仓库

    git remote add origin xxx.git

    远程库为空时,第一次push。以后push都可以去掉-u的参数。

    git push -u origin master

    本地库不存在,可以从远程仓库clone

    git clone xxx.git

    分支管理

    切分支后合并分支

    checkout了哪个分支,执行merge命令时就以谁为主。

    假设dev的版本是比master新的版本,以下命令,如果当前checkout的是master,那就是把dev的内容合并到master上

    实质上只是把指在master上的head指针指向了dev。这种属于fast-forward合并

    git merge dev

    可以通过加--no-ff参数的方式禁用fast-forward模式,这样每一次merge都会创建一个新的commit

    git merge --no-ff -m "xxxx"

    解决冲突

    当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

    解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

    Bug分支

    当前有一些暂时无法完成的任务,但需要紧急先切一个分支解决问题再继续的时候

    可以储存现场,留作以后使用

    git stash

    储存后,git status可以看到工作区没有任何文件。

    然后正常在master切新的分支,完成bug修复工作后commit,然后切换到master再把这个临时分支合并进来

    用git stash list查看存起来的工作现场。

    要恢复有两种方法:

    git stash apply(这种方法stash起来的内容不会删除,如果需要删除需要用命令git stash drop)

    git stash pop(这种方法不保留stash的内容,取出来stash的东西就没了)

    多人协作

    本地仓库默认叫master

    远程仓库默认叫origin

    查看远程库的命令。带上-v这个参数可以查看更详细的信息

    git remote

    git remote -v

    推送xxxx

    git push origin xxxx

    开始一个项目的例子

    # 先拷贝项目到本地。此时本地只有一个master分支

    git clone xxx.git

    # 查看分支

    git branch

    # 创建远程的origin的dev分支到本地

    git checkout -b dev origin/dev

    # 开始在dev上工作,需要时推送到远端

    git add .

    git commit -m "xxx"

    git push origin dev

    解决冲突

    # 先把最新提交从origin/dev抓下来

    git pull

    # 如果是因为没有指定本地dev和origin/dev分支的链接而失败,就先设置链接

    git branch --set-upstream-to=origin/dev dev

    # 然后重新pull

    git pull

    # 代码冲突解决之后,重新commit即可。

    rebase

    待续

    常用步骤

    开发完自己的部分后,先本地把变更commit一下
    git add .
    git status
    git commit -m “备注”
     
    切到本地master分支,然后拉取线上最新代码。永远保持本地master为最新
    git checkout master
    git fetch origin master
     
    然后把head切到这个最新的本地master
    git reset —hard origin/master
     
    之后把这个最新的本地master合并到自己的分支yyy里
    git checkout yyy
    git merge yyy master
  • 相关阅读:
    测试随笔
    ECNU 3530 和你在一起
    ECNU 1030 母牛生小牛
    ECNU 3081 购房还款
    PPP模式下的融资结构优化
    决策树分类
    关联规则-R语言实现
    中国快递包裹总量的预测-基于SARIMA模型
    LeetCode 2 :Swap Nodes in Pairs
    2018092609-2 选题 Scrum立会报告+燃尽图 04
  • 原文地址:https://www.cnblogs.com/wuhuohanke/p/10630785.html
Copyright © 2011-2022 走看看