Vedi la data di commit "reale" in github (ora / giorno)


161

C'è un modo per vedere la data di un commit in github, con precisione giorno / ora? I commit meno recenti vengono visualizzati in un formato "leggibile dall'uomo", ad esempio "2 anni fa" anziché mostrare la data effettiva.

vecchio github commit

Se non è possibile visualizzare la data effettiva su github, esiste una soluzione più semplice di git clone?

Risposte:


302

Passa il mouse sopra 2 years agoe otterrai il timestamp.


32
Grazie. Questa è "usabilità"!
JD.

9
Stessa soluzione per come vedere la data su StackOverflow. (In alto a destra, "chiesto 1 anno fa")
Greg

8
Grazie. È abbastanza facile perdere. Non è la soluzione ideale, penso. ;-)
Nico,

Non avevo idea che tu potessi farlo ... questo mi ha aiutato. Ma mi chiedo, c'è un comando git che puoi inserire che visualizzerà queste informazioni se passi nell'hash di commit?
CF_HoneyBadger

12
Facile da perdere. Non potrebbero semplicemente mostrare la data esatta?
sudo,

9

La vera data non appare per me al passaggio del mouse "2 anni fa", nonostante il testo sia avvolto da un <time>elemento con un valore iso sotto il suo datetimeattributo.

Se tutto il resto fallisce, come ha fatto per me, prova a ispezionare il testo.

Elemento campione:

<time datetime="2015-01-22T20:48:13Z" is="relative-time" title="Jan 22, 2015, 2:48 PM CST">7 days ago</time>


4
Non ha nulla a che fare con il loro elemento fine o tempo o qualcosa del genere. Sei tu e il tuo browser. Un attr attrattivo viene visualizzato dai browser come una descrizione comandi quando si passa con il mouse. Niente fantasie, niente css, niente. Alcune persone hanno riferito problemi con cromo e titolo attr vedono stackoverflow.com/questions/21314758/... stackoverflow.com/questions/10391327/...
dalore

4

puoi semplicemente usare questo segnalibro js:

javascript:(function() { 
        var relativeTimeElements = window.document.querySelectorAll("relative time");
        relativeTimeElements.forEach(function(timeElement){
        timeElement.innerHTML = timeElement.innerHTML +" -- "+ timeElement.title;
        })
    }()
)

https://gist.github.com/PhilippGrulich/7051832b344d4cbd30fbfd68524baa38

Aggiunge il momento giusto: In questo modo: impegnato 21 ore fa - 15. febbraio 2017, 15:49 MEZ


Il tuo non ha funzionato per me, quindi ho scritto questo e ha funzionato; +1 per l'ispirazionejavascript:(function() { var el = document.createElement('div'); document.body.prepend(el); el.innerHTML = document.getElementsByTagName('relative-time')[0].getAttribute('title');}() )
Coty Embry,

2

Ho provato lo script TamperMonkey / Greasemonkey di @ odony su Chrome ma non sono riuscito a farlo funzionare. detachCallback()non è stato riconosciuto. Quindi, invece di staccare qualsiasi callback, ho semplicemente sostituito il <relative-time>nodo.

// ==UserScript==
// @name         Github: always show absolute times
// @match        https://github.com/*
// ==/UserScript==

(function() {
    document.querySelectorAll("relative-time").forEach(function(el) {
        var parent = el.parentNode;
        var timestamp = el.title;
        var span = document.createElement("span");
        span.innerHTML = timestamp;
        parent.removeChild(el);
        parent.appendChild(span);
    });
})();

Mi dispiace non averlo testato con altri browser, ma dato che si tratta di javascript di base, dovrebbe funzionare. :)


1

Se stai cercando un modo per visualizzare la data / ora in modo permanente senza passare il mouse (ad esempio per gli screenshot), le soluzioni basate su Javascript sopra non corrispondono all'ultimo HTML Github (vedi commenti). E non hanno tenuto conto del fatto che i timestamp vengono aggiornati automaticamente in base a un timer ( "X minuti fa" deve cambiare ogni minuto), quindi riappaiono periodicamente.

La seguente sceneggiatura sembra funzionare su Github dal 2020-01-27:

(function() {
    var els = window.document.querySelectorAll("time-ago,relative-time");
    els.forEach(function(el) {
        el.innerHTML = "on " + el.getFormattedTitle(); // original timestamp
        el.disconnectedCallback(); // stop auto-updates
    });
})();

È possibile rendere questo un bookmarklet prefissando il codice con javascript:come nell'altra soluzione basata su JS.

E se vuoi renderlo una correzione permanente , puoi salvarlo come uno script TamperMonkey / Greasemonkey, come segue:

// ==UserScript==
// @name         Github: always show absolute times
// @match        https://github.com/*
// ==/UserScript==

(function() {
    setTimeout(function() {
        var els = window.document.querySelectorAll("time-ago,relative-time");
        els.forEach(function(el) {
            el.innerHTML += ' <span class="text-small">(' + el.title + ')</span>'; // set original timestamp
            el.disconnectedCallback(); // stop auto-updates
        });
    }, 100); // YMMV, experiment with the timeout
})();

Non è molto carino ma sembra fare il lavoro.


0

Con gitlab 10 l'ho usato per aggiungere il titolo della descrizione comando all'elemento come testo standard:

javascript:(function() { 
  var relativeTimeElements = window.document.querySelectorAll("time");
  relativeTimeElements.forEach(function(timeElement){
    timeElement.innerHTML = timeElement.innerHTML +" -- "+ timeElement.getAttribute('data-original-title');
  })
}());
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.