Я полагаю, что вам нужно вернуть изменения, прежде чем git
поймет, что удаленный конец обновлен. Вы можете сделать это через быстрое git pull
(или, как вы показываете в своем примере, git push
до отслеживаемого источника).
Вы также можете вручную изменить коммит, на который указывает refs/remotes/origin
.
Несправедливо ожидать, что трекер контента распознает произвольные удаленные синонимы для репозиториев; представьте, если бы у вас было пять разных URL-адресов, которые представляли собой один и тот же серверный репозиторий. Когда вы нажимаете на репо А, означает ли это, что ваши изменения были зафиксированы в репо Б (источник вашей ветки)? мерзавец не знает. Вместо этого он обновляет ссылку на удаленную головку только в двух случаях: извлечение и отправка в пункт назначения по умолчанию.
public TimeSpan UpTime {
get {
using (var uptime = new PerformanceCounter("System", "System Up Time")) {
uptime.NextValue(); //Call this an extra time before reading its value
return TimeSpan.FromSeconds(uptime.NextValue());
}
}
}
System.Environment.TickCount получает количество миллисекунд, прошедших с момента перезапуска системы.
Но помните, что это Int32, он переполнится через 24,9 дня и станет отрицательным. См. Примечания к документации MDSN.
Просто, нет, но это возможно:
static DateTime getLastBootTime(ManagementObject mObject)
{
PropertyData pd = mObject.Properties["LastBootUpTime"];
string name = pd.Name.ToString();
DateTime lastBoot = parseCmiDateTime(pd.Value.ToString());
return lastBoot;
}
static ManagementObject getServerOSObject(string serverName)
{
ManagementObjectSearcher mSearcher = new ManagementObjectSearcher("Select * From Win32_OperatingSystem");
mSearcher.Scope = new ManagementScope(String.Format(@"\\{0}\root\cimv2", serverName));
ManagementObjectCollection mObjects = mSearcher.Get();
if (mObjects.Count != 1) throw new Exception(String.Format("Expected 1 object, returned {0}.", mObjects.Count));
foreach (ManagementObject m in mObjects)
{
//No indexing on collection
return m;
}
throw new Exception("Something went wrong!");
}
Самый простой и правильный способ сделать это -
public static TimeSpan GetUptime()
{
ManagementObject mo = new ManagementObject(@"\\.\root\cimv2:Win32_OperatingSystem=@");
DateTime lastBootUp = ManagementDateTimeConverter.ToDateTime(mo["LastBootUpTime"].ToString());
return DateTime.Now.ToUniversalTime() - lastBootUp.ToUniversalTime();
}