我开始学习Git了.我一直在搞乱GitKraken,我希望使用GUI是保存和分享内容的可行途径.我更喜欢GUI到命令行.
现在我明白了,在GUI中,我需要stage的文件,然后commit他们,然后push,上传他们.但为什么push和commit两个不同的东西?为什么只想commit本地,没有以下上传来保持文件同步?
我试图通过使用以下命令提交所有更改
git commit -a
Run Code Online (Sandbox Code Playgroud)
注意:我想提交没有任何"提交消息"
但是当我执行上面的命令时它会显示下面显示的屏幕,我不知道如何离开这个屏幕来完成我的提交.

我得到了数十个存储库,如果发生任何差异,新的提交,新的标记,新的分支,我的脚本应该更新它们。在我的情况下,对于数十个存储库而言,访存有点慢,我想知道是否有任何快速命令可以满足我的要求。
也许我误解了GIT的工作原理。
我已经跑步了git rebase -i HEAD~10,我可以将10次提交压缩为一个。问题是所有压缩的提交仍然存在,并且我认为在将它们全部合并为一个之后,它们将被丢弃。
这是预期的结果吗?如果是这样,我是否可以重写历史记录以删除无用的提交(因为这些更改已经存在于以前所有提交已被压缩的提交中)?
我觉得这个问题可以用一两个超链接来回答; 我只是没有提出正确的搜索条件来自己查找这些链接...
我正在尝试git p4对子命令进行一些小的更改,它被实现为一个名为3797行的Python脚本/usr/libexec/git-core/git-p4.在深入探讨代码之前,我想了解一下Python git命令的结构.
子命令从调用者那里得到什么信息?它可以依赖现有的环境变量?它如何检测配置(来自.git/config和/或~/.gitconfig)?git命令行选项是如何传递下来的git(如果有许多不同子命令共有的命令行选项,并且您希望确保它们的处理是集中的)?子命令启动时当前工作目录是什么?如果我改变 cwd怎么办?git作为新子命令功能的一部分,我如何回复它应该更改repo(make commits,添加或删除标签,重写历史记录)?我的命令可以直接"处理"索引而无需创建工作树,如果是,如何?如何处理和报告错误?如何以一致的方式打印使用信息?
我假设必须有博客文章和关于这个主题的事情,但搜索"在python中编写一个git子命令","创建新的git子命令"等,只是提出了从Python运行现有git命令的方法以及创建新方法的方法git repos,分别.
我有以下按顺序运行的命令列表,以便可以提交源项目并将其推送到Bitbucket上的存储库:
git init
git remote add origin https://[BitBucket Username]@bitbucket.org/[BitBucket Username]/[BitBucket Repository Name].git
git config user.name "[BitBucket Username]"
git config user.email "[BitBucket Email ID]"
## if email doesn't work then use below ##
git config --global user.email \<\>
git add *
git commit -m "[Comment]"
git push -u origin master
Run Code Online (Sandbox Code Playgroud)
现在,我想知道是否有可能将所有这些都链接到单个git命令中并保持相同的顺序,而不是将每一行分别放在各自的时间和顺序上,如下所示?
git init remote add origin https://[BitBucket Username]@bitbucket.org/[BitBucket Username]/[BitBucket Repository Name].git config user.name "[Username]" ....
Run Code Online (Sandbox Code Playgroud)
还是至少结合以下多个相同类别的参数?
git config user.name "[BitBucket Username]" user.email "[BitBucket Email ID]"
Run Code Online (Sandbox Code Playgroud)
我需要通过示例来了解这两种情况的可能性。
我使用git commit --amend修改了之前的提交.在那之后,当我推动我的更改时,由于'not -fast-forward'错误,我被拒绝了.我找到了答案.不幸的是,如命令,git pull --rebase,git fetech origin不工作.如果我的本地仓库没有冲突,为什么我的推送失败了.
我想为每个git命令创建一个别名.
因为它们中有很多,我想把它们放在一个列表中然后在我的循环中循环.bashrc.
有没有办法让它们在shell脚本中?
我的代码在团队git repo的一个分支中.现在我需要将它"转移"(即推送)到团队成员正在使用的同一个仓库的另一个分支中.我怎样才能做到这一点 ?
我更喜欢使用git bash.
PS - 我必须转移到的新分支不是"主".
我正在我的主分支上工作,并在主分支内部进行一些未提交的更改.我已经创建了一个功能分支,我可以使用该git checkout feature_branch命令切换到我的功能分支.我有几个疑问,我在下面列出:
在git中,能够轻松删除我以前所在的分支将很有帮助。您无法删除所在的分支,因此您需要签出新的/现有的分支,并通过写下其全名来删除先前的分支。
git checkout new_branch
git branch -D old_branch_with_really_long_and_hard_name
Run Code Online (Sandbox Code Playgroud)
我真正想要的是能够做到这一点:
git checkout new_branch
git branch -D -
Run Code Online (Sandbox Code Playgroud) 最近,$ git add .我对其中一个存储库进行了一些更改,然后是$ git commit -m'INcorrect commit message'。
我决定使用以下方式将错误的提交消息更改为“正确的提交消息”:
$ git commit --amend
可以在以下位置找到我遵循的说明:https : //git-scm.com/book/en/v2/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages
我使用的Atom,所以原子与打开“ IN正确的提交信息”显示,我更改为“正确的提交信息”,然后保存我的变化。
保存更改后的提交消息后,我$ git log -1期望看到“正确的提交消息”;但是,我仍然看到“ IN正确的提交消息”。
我到底在做什么错?
注意
在此之前,我按照以下说明将git编辑器从Sublime更改为Atom:如何使Git使用我选择的编辑器进行提交?
我基本上使用了:
$ git config --global core.editor "atom"
和
$ export GIT_EDITOR=atom
现在,我意识到我不必同时执行这两项操作,但是我也意识到这可能也没有伤害。
git ×13
git-commands ×13
git-commit ×4
bash ×2
git-bash ×2
atom-editor ×1
combiners ×1
command-line ×1
git-amend ×1
git-diff ×1
git-push ×1
git-remote ×1
git-squash ×1
git-stash ×1
github ×1
python ×1
repository ×1