当我推或提时,Git头变得分离

时间:2016-12-29 12:21:07

标签: git

您好我是Git的新手,我正在尝试执行这些简单的步骤。

  1. 首先我从GitHub克隆我的远程仓库

    import static groovy.io.FileType.FILES
    import javax.xml.parsers.DocumentBuilderFactory
    import javax.xml.parsers.DocumentBuilder
    import org.w3c.dom.Document
    import org.w3c.dom.NodeList
    import org.w3c.dom.Node
    import org.w3c.dom.Element
    import org.xml.sax.InputSource
    import java.io.StringReader
    
    logger.println "------------------------------------------------------------------------------------------------"
    logger.println "Parsing SERENITY-JUNIT XML files for results to update Editable Email Notification."
    
    // determine if build is remote, list folder and files
    def sourceDirPath
    
    if(build.workspace.isRemote()){
        channel = build.workspace.channel
        logger.println "Using channel: " + channel
        sourceDirPath = new FilePath(channel, build.workspace.toString() + "\\target\\site\\serenity\\")
    } else {
        sourceDirPath = new FilePath(new File(build.workspace.toString() + "\\target\\site\\serenity\\"))
    }
    logger.println "Source dir: " + sourceDirPath
    
    def files = sourceDirPath.list("SERENITY-JUNIT-*xml")
    
    logger.println "Found XML files: \n" + files
    
    // initialize result variables
    def tests = 0
    def failures = 0
    def errors = 0
    def skipped = 0
    def passed = 0
    
    // parse files
    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance()
    files.each{
        logger.println "Starting to parse file: " + it
    
        channel = build.workspace.channel
        def file = new FilePath(channel, it.getRemote())
        def xmlString = file.readToString()
        logger.println "Extracted XML:\n" + xmlString
    
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder()
        Document doc = dBuilder.parse(new InputSource(new StringReader(xmlString)))
        doc.getDocumentElement().normalize()
        Element testsuiteNode = doc.getDocumentElement()
        logger.println testsuiteNode
    
        tests += Integer.parseInt(testsuiteNode.getAttribute("tests"))
        failures += Integer.parseInt(testsuiteNode.getAttribute("failures"))
        errors += Integer.parseInt(testsuiteNode.getAttribute("errors"))
        skipped += Integer.parseInt(testsuiteNode.getAttribute("skipped"))  
        logger.println "Completed parsing file: " + it
    }
    // calculate passed tests amount
    passed = tests - failures - errors - skipped
    
    // aggregated results
    logger.println "Aggregated results:"
    logger.println "Tests: " + tests
    logger.println "Passed: " + passed
    logger.println "Failures: " + failures
    logger.println "Errors: " + errors
    logger.println "Skipped: " + skipped
    
    // compose message subject
    def msgSubject
    if(tests == 4){
        if(failures > 0 || errors > 0){
            msgSubject = "FAILED - Passed ${passed}/${tests}, Failures ${failures}, Errors ${errors}, Skipped ${skipped}."
        }else if(skipped > 0){
            msgSubject = "OK (w/ skipped tests) - Passed ${passed}/${tests}, Failures ${failures}, Errors ${errors}, Skipped ${skipped}."
        }else{
            msgSubject = "OK - Passed ${passed}/${tests}, Failures ${failures}, Errors ${errors}, Skipped ${skipped}."
        }
    }else{
        msgSubject = "FAILED - Not all tests or too many tests executed (${tests})."
    }
    
    // set message subject
    msg.setSubject(msg.getSubject() + ": " + msgSubject)
    
    logger.println "------------------------------------------------------------------------------------------------"
    
  2. 然后我在文件中进行一些更改并尝试将其暂存以提交

    git clone git@github.com:eldon/Test.git
    
  3. 然后我承诺:

    git add *
    
  4. 然后我推它:

    git commit -m "Initial Commit"
    
  5. 但是如果我检查git push origin master 它会显示 head detached 。如果我给下面的代码它的工作正常:

    git status

    有时它在我提交之后显示头部分离。

    这种行为的原因是什么?

1 个答案:

答案 0 :(得分:1)

看起来您的本地分支机构没有跟踪您的远程分支,因为您克隆了一个没有原始内容且没有主分支的空存储库。

第一次按下时,应使用以下命令。

git push -u origin master
相关问题