Dashboards don't work well with emoji in branch names
For example, `this-branch-is-da-💥` works fine from the command line, but the Status dashboard shows `None.` as the branch name, the branch dashboard doesn't show the branch at all, and the rebase dashboard doesn't function correctly.  This is likely due to an omission in a regular expression we're using for branch name detection somewhere.
diff --git a/core/commands/checkout.py b/core/commands/checkout.py
index 6d67608b..58d70e19 100644
--- a/core/commands/checkout.py
+++ b/core/commands/checkout.py
@@ -58,7 +58,7 @@ class GsCheckoutNewBranchCommand(WindowCommand, GitCommand):
         self.window.show_input_panel(NEW_BRANCH_PROMPT, name, self.on_done, None, None)
 
     def on_done(self, branch_name):
-        pattern = r"^(?!\\.|.*\\.\\..*|.*@.*|\\/)[a-zA-Z0-9\\-\\_\\/\\.]+(?<!\\.lock)(?<!\\/)(?<!\\.)$"
+        pattern = r"^(?!\\.|.*\\.\\..*|.*@.*|\\/)[a-zA-Z0-9\\-\\_\\/\\.\\u263a-\\U0001f645]+(?<!\\.lock)(?<!\\/)(?<!\\.)$"
         match = re.match(pattern, branch_name)
         if not match:
             sublime.error_message("`{}` is a invalid branch name.\\nRead more on $(man git-check-ref-format)".format(branch_name))
diff --git a/core/git_mixins/active_branch.py b/core/git_mixins/active_branch.py
index 384df8c9..125e160a 100644
--- a/core/git_mixins/active_branch.py
+++ b/core/git_mixins/active_branch.py
@@ -41,7 +41,7 @@ class ActiveBranchMixin():
             return False, True, first_line[21:], clean, None, None, None, False
 
         valid_punctuation = "".join(c for c in string.punctuation if c not in "~^:?*[\\\\")
-        branch_pattern = "[A-Za-z0-9" + re.escape(valid_punctuation) + "]+?"
+        branch_pattern = "[A-Za-z0-9" + re.escape(valid_punctuation) + "\\u263a-\\U0001f645]+?"
         short_status_pattern = "## (" + branch_pattern + ")(\\.\\.\\.(" + branch_pattern + ")( \\[((ahead (\\d+))(, )?)?(behind (\\d+))?(gone)?\\])?)?$"
         status_match = re.match(short_status_pattern, first_line)
 
diff --git a/core/git_mixins/branches.py b/core/git_mixins/branches.py
index bb8e8834..e67f51ad 100644
--- a/core/git_mixins/branches.py
+++ b/core/git_mixins/branches.py
@@ -33,8 +33,7 @@ class BranchesMixin():
         if not line:
             return None
 
-        pattern = r"(\\* )?(remotes/)?([a-zA-Z0-9\\-\\_\\/\\.\\-]+(?<!\\.lock)(?<!\\/)(?<!\\.)) +([0-9a-f]{40}) (\\[([a-zA-Z0-9\\-\\_\\/\\.]+)(: ([^\\]]+))?\\] )?(.*)"
-        r"((: ))?"
+        pattern = r"(\\* )?(remotes/)?([a-zA-Z0-9\\-\\_\\/\\.\\-\\u263a-\\U0001f645]+(?<!\\.lock)(?<!\\/)(?<!\\.)) +([0-9a-f]{40}) (\\[([a-zA-Z0-9\\-\\_\\/\\.]+)(: ([^\\]]+))?\\] )?(.*)"
 
         match = re.match(pattern, line)
         if not match:
['core/git_mixins/branches.py', 'core/git_mixins/active_branch.py', 'core/commands/checkout.py']