我想发出一个命令让我交互式地添加一个大块头,丢弃一个大块头或者让这个大块头没有分段......
实际上我知道只有:
git add -p:交互式添加(或保持未分级)
git checkout -p:DISCARDS交互式(或未经分级)
GIT中是否有一个命令可以选择"git add -p"和"git checkout -p"COMBINED?
这个问题的答案提供了这个问题,这里是根本不能让人满意:(
在git-scm页面上显示的图表中,记录对存储库的更改,它显示untracked添加文件时,它会移动到该unmodified状态.

它是否正确?如果我$ git add myFile然后运行$ git status,它表明myFile已准备好提交,从查看该页面上的图表时(从我的初学者的角度来看)看起来不直观.
图表是否不正确,不完整,或者我对图表的理解不正确?如果是后者,请有人解释一下是什么意思.
我正在尝试为我已经工作了一段时间的项目设置Git.我记得很久以前设置Git但从未出于各种原因使用过它.现在我想使用它我得到一个奇怪的问题,我认为这与旧安装有关.
为了重新开始,我安装了一个新的Ubuntu操作系统,这样就不会有Git安装,我复制了项目(Grails).然后我导航到该目录并运行以下命令:
git init
git remote add origin https://USERNAME@bitbucket.org/USERNAME/APPNAME.git
Run Code Online (Sandbox Code Playgroud)
然后我跑了:
git add .
Run Code Online (Sandbox Code Playgroud)
这是我得到以下错误的地方:
fatal: Not a git repository: /home/user/workspace/App_V3/.git/modules/plugins/grails-spring-security-ui
Run Code Online (Sandbox Code Playgroud)
这个错误很奇怪,因为它甚至不匹配我所在的目录,因为目录如下:
/ home/user中/工作区/ App_V7 /
我想我原本可能在旧操作系统的App_V3文件夹中设置了Git,但不知道为什么它仍然指向该目录,因为我已经运行下面的代码重新初始化它:
rm -rf .git
git init
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我,因为它非常令人沮丧:S
提前致谢
我的下列理解git add file和git checkout -- file(但我不知道这是否是正确的).
每当我们使用文本编辑器编辑文件时,我们都会在工作目录中进行编辑.每次我们都可以staging area通过执行将文件移动到所谓的git add file_name.如果我们再次编辑文件(之后git add),我们更改工作目录中的文件,这样,在工作目录中,我们使文件处于"新"状态,而staging area文件处于"旧"状态.
当我们git add再次使用时,我们将暂存区域中的文件带到"新"状态(工作目录中的状态).
如果我们这样做git checkout -- file_name,我假设我们从暂存区域获取一个文件并使用它来覆盖工作目录中的文件.通过这种方式,我们可以将工作目录中的文件置于"旧"状态.这是对的吗?
我还不清楚的是,如果我们从暂存区域复制或移动文件.换句话说,确实git checkout -- file改变了文件的状态staging area.我们可以说,在git checkout -- file暂存区域中的文件将文件状态更改为暂存区域中的先前状态后?
我试图将更改分为几个提交,但是在手动编辑块时遇到了一个问题。
原始大块头:
@@ -116,8 +116,8 @@
context
context
- remove 1
- remove 2
- remove 3
+ add 1
+ add 2
+ add 3
context
context
context
Run Code Online (Sandbox Code Playgroud)
我只希望上演“删除1”和“删除2”所发生的更改。换句话说,我需要将“删除3”从提交中排除。
我尝试了这个:
@@ -116,4 +116,4 @@
context
context
- remove 1
- remove 2
+ add 1
+ add 2
Run Code Online (Sandbox Code Playgroud)
但是它一直输出不适用的补丁。我只删除了最后的上下文行,并“删除了3”和“添加3”行。我编辑了大块的范围并减去了4条排除的行(其中3条是上下文1是更改,1条已删除和1条添加)
我使用了两个不同的编辑器,“ nano”和“ sublime text”,它们的结果相同。我确保没有被注释掉的空行。
我究竟做错了什么?
我想返回并删除两次提交的提交的几个部分。我希望我可以做git rebase -i HEAD^^,edit提交,然后git add --patch <file>在文件上使用。但是,在 rebase 期间,git reset HEAD <file>似乎不起作用,因为当我尝试时git add --patch <file>,它说没有任何变化。
做一个git add -p我看到一个差异和选择列表:
~/workspace$ git add -p
diff --git a/gulpfile.js b/gulpfile.js
index cf91028..c3a0964 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -57,7 +57,7 @@ gulp.task("pack", pack);
// Minify and concatenate all js libs
gulp.task("libs", function() {
return gulp.src([
- "js/libs/trackjs.js",
+ // "js/libs/trackjs.js", // hidden due to noise but not the bug
"js/libs/q.js",
"js/libs/jquery.js",
"js/libs/cookie.js",
Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]?
Run Code Online (Sandbox Code Playgroud)
什么Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]?选项来?哪里可以找到他们的解释?
我上传了一些文件到 git LFS 并且超出了我的存储限制。现在,我上传的文件没有出现在 repo 中,但我仍然超过了我的数据限制,我无法上传任何东西。
我执行以下命令序列:
git init rep
cd rep/
echo '111' > 1.txt
git add 1.txt
git commit -m '1'
git checkout -b dev
echo '222' > 1.txt
git checkout master
more 1.txt
Run Code Online (Sandbox Code Playgroud)
作为这些命令的结果,我看到了
222
Run Code Online (Sandbox Code Playgroud)
而且我不明白为什么。如您所见,我创建并进入'dev'分支。我在那里做了一些更改,但是我没有添加也不提交它们。从“ dev”回到“ master”后,为什么还能看到我在“ dev”中所做的更改?在我添加,提交并将它们合并回master之前,他们不应该留在dev中吗?
我正在尝试为具有本地版本,登台版本和生产版本的Wordpress安装设置“简单” git工作流。我要做的就是在本地进行更改,然后从本地推送到暂存,从本地推送到生产。起初,我认为这将是一个简单的任务。我已经能够初始化存储库,添加两个远程“ staging”和“ production”,在远程控制器上初始化git,并通常使用以下命令将更改从本地版本推送到暂存和生产服务器:
git add .
git commit -m "some changes"
git push staging master
git push production master
Run Code Online (Sandbox Code Playgroud)
但是,在工作期间的某些时候,发生了一些变化,尽管我仍然可以推送到暂存,但是现在我无法在没有出现错误的情况下推送到生产服务器:
! [remote rejected] master -> master (Working directory has unstaged changes)
Run Code Online (Sandbox Code Playgroud)
当我执行“ git status”时,它说:
On branch master
nothing to commit, working tree clean
Run Code Online (Sandbox Code Playgroud)
在阅读了关于堆栈溢出的几个相似但不同的问题的答案之后,我尝试了以下方法:
git pull staging master
git pull staging master --rebase
git pull production master
git pull production master --rebase
Run Code Online (Sandbox Code Playgroud)
我也尝试在远程服务器上执行此命令
git config --local receive.denyCurrentBranch updateInstead
Run Code Online (Sandbox Code Playgroud)
我已经完全重新创建了几次服务器和存储库,只是为了完全从头开始重新安装git,但是此问题在一段时间后仍会继续发生,此时,Git实际上正在浪费我的工作流程而不是提供帮助。如果有人对我的错误有任何了解,将不胜感激!
git ×10
git-add ×10
git-checkout ×2
git-commit ×1
git-lfs ×1
git-patch ×1
git-push ×1
git-rebase ×1
git-remote ×1
github ×1
linux ×1
repository ×1
wordpress ×1