我想做以下工作流程:
有没有办法做第2步?
例
echo "123" > foo
git add foo # Assumes this is a git directory
echo "456" >> foo
git stash
cat foo # Should yield 123
Run Code Online (Sandbox Code Playgroud) 我想将一些被一堆 repos 忽略的文件跟踪到一个 repo 中。
这是一个示例布局:
.
+-- .git
+-- .idea
|-- .gitignore
|-- proj1
| +-- .git
| |-- .gitignore
| |-- foo
| | |-- foo.iml
| |-- bar.c
| |-- proj1.iml
|-- proj2
+-- .git
|-- .gitignore
+-- bar
|-- foo.c
|-- proj2.iml
Run Code Online (Sandbox Code Playgroud)
我想要:
有什么解决办法吗?
我想在将文件添加到Git索引之前自动格式化我的文件.现在,我有一个预提交钩子,看起来像这样:
#!/bin/bash
set -e
exec 1>&2
workingext="working.$$"
ext="bak.$$"
git diff -z --cached --name-only | egrep -z '\.(pl|pm|t)$' | \
while read -d'' -r f; do
# First modify the file in the index
mv "$f" "$f.$workingext"
git show :"$f" > "$f"
perl -c "$f"
perltidy -pbp -nst -b -bext="$ext" "$f";
rm -f "$f.$ext"
git add "$f"
mv "$f.$workingext" "$f"
# Then the working copy
perl -c "$f"
perltidy -pbp -nst -b -bext="$ext" "$f";
rm -f "$f.$ext"
done
Run Code Online (Sandbox Code Playgroud)
基本上,我备份工作副本,检查索引副本,格式化它们,将它们添加到索引,然后还原工作副本并格式化它们,以便工作副本和索引副本之间的差异也不会增长大.我首先检查文件的语法,perl -c …