diff --git a/buildroot/share/git/mfinfo b/buildroot/share/git/mfinfo
index 533b30a56ae763f47019b776cd2d495d22465308..84b067caebda869f19837e5ebf242015aa66fb12 100755
--- a/buildroot/share/git/mfinfo
+++ b/buildroot/share/git/mfinfo
@@ -37,4 +37,8 @@ case "$#" in
* ) echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1 ;;
esac
+if [[ $BRANCH == "(no" ]]; then
+ echo "Git is busy with merge, rebase, etc." 1>&2 ; exit 1
+fi
+
echo "$ORG $FORK $REPO $TARG $BRANCH"
diff --git a/buildroot/share/git/mfinit b/buildroot/share/git/mfinit
index 5e2cbc0d88e2931322aae42a4ccafab45bdf89d4..2a379146017fc374e8c17bcf96dcaa53f2d19c7b 100755
--- a/buildroot/share/git/mfinit
+++ b/buildroot/share/git/mfinit
@@ -2,7 +2,15 @@
#
# mfinit
#
-# Create the upstream repository for Marlin
+# Create the upstream remote for a forked repository
#
-git remote add upstream git@github.com:MarlinFirmware/Marlin.git
+REPO=$(git remote get-url origin 2>/dev/null | sed -E 's/.*\/(.*)\.git/\1/')
+
+if [[ -z $REPO ]]; then
+ echo "`basename $0`: No 'origin' remote found." 1>&2 ; exit 1
+fi
+
+git remote add upstream "git@github.com:MarlinFirmware/$REPO.git"
+
+git fetch upstream
\ No newline at end of file
diff --git a/buildroot/share/git/mfnew b/buildroot/share/git/mfnew
index 0a07513bf97102d2ce14ff4dde52d9e964a0b42f..7f3d7876c01cea2de16b8e8907984dbe2a285f3d 100755
--- a/buildroot/share/git/mfnew
+++ b/buildroot/share/git/mfnew
@@ -2,20 +2,15 @@
#
# mfnew
#
-# Create a new branch based on RCBugFix or dev a given branch name
+# Create a new branch from the default target with the given name
#
MFINFO=$(mfinfo) || exit
IFS=' ' read -a INFO <<< "$MFINFO"
TARG=${INFO[3]}
-if [[ ${INFO[4]} == "(no" ]]; then
- echo "Branch is unavailable!"
- exit 1
-fi
-
case "$#" in
- 0 ) BRANCH=pr_for_$TARG-$(date +"%G-%d-%m|%H:%M:%S") ;;
+ 0 ) BRANCH=pr_for_$TARG-$(date +"%G-%m-%d_%H.%M.%S") ;;
1 ) BRANCH=$1 ;;
* ) echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1 ;;
esac
diff --git a/buildroot/share/git/mfpr b/buildroot/share/git/mfpr
index 8eff48483ac54af7d310b951014fc159d8e0c0a6..eb2e102aed68a421fdb5cc74972807ba87904915 100755
--- a/buildroot/share/git/mfpr
+++ b/buildroot/share/git/mfpr
@@ -15,11 +15,6 @@ REPO=${INFO[2]}
TARG=${INFO[3]}
BRANCH=${INFO[4]}
-if [[ $BRANCH == "(no" ]]; then
- echo "Git is busy with merge, rebase, etc."
- exit 1
-fi
-
if [[ ! -z "$1" ]]; then { BRANCH=$1 ; git checkout $1 || exit 1; } fi
if [[ $BRANCH == $TARG ]]; then
diff --git a/buildroot/share/git/mfrb b/buildroot/share/git/mfrb
index c1366f7f98dfdba48dc6a9a52f3a75c6aaba2947..b0b700868049023a589f8fde61b2bc2845939347 100755
--- a/buildroot/share/git/mfrb
+++ b/buildroot/share/git/mfrb
@@ -8,11 +8,6 @@
MFINFO=$(mfinfo) || exit
IFS=' ' read -a INFO <<< "$MFINFO"
-if [[ ${INFO[4]} == "(no" ]]; then
- echo "Branch is unavailable!"
- exit 1
-fi
-
case "$#" in
0 ) ;;
* ) echo "Usage: `basename $0`" 1>&2 ; exit 1 ;;
diff --git a/buildroot/share/git/mfup b/buildroot/share/git/mfup
index ff19e0e1c0347bd95c6ed673ee9a1a24b1624615..8d339c0685ee005a73829f73961415ff50ccb36d 100755
--- a/buildroot/share/git/mfup
+++ b/buildroot/share/git/mfup
@@ -15,11 +15,6 @@ REPO=${INFO[2]}
TARG=${INFO[3]}
OLDBRANCH=${INFO[4]}
-if [[ $OLDBRANCH == "(no" ]]; then
- echo "Branch is unavailable!"
- exit 1
-fi
-
case "$#" in
0 ) BRANCH=$OLDBRANCH ;;
1 ) BRANCH=$1 ;;