git checkout一个文件的时候,可以把文件恢复到某个版本,但是我们有时候,改了一个文件,比如删除了一个函数,添加了另外一个函数,我们想把删除的函数加回来,这时候,如果直接checkout,那么新加的函数会被删除。
当前改动:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | $ git diff api/helper.cdiff --git a/src/api/helper.c b/src/api/helper.cindex fe4bf5b..f12060c 100644--- a/src/api/helper.c+++ b/src/api/helper.c@@ -171,19 +171,6 @@ const char *find_kv(struct key_val *kv, const char *key) return NULL; }-const char *ts_str()-{- static char ts[24];- struct timespec sp;- uint64_t v;- clock_gettime(CLOCK_REALTIME, &sp);- v = sp.tv_sec;- v *= 1000;- v += sp.tv_nsec / 1000000;- sprintf(ts, "%" PRIu64, v);- return ts;-}- int upper_hex(const char *in, int len, char *out, int sz) { int i;@@ -480,6 +467,17 @@ int ts() return (int)ts.tv_sec; }+int64_t tsms()+{+ struct timespec sp;+ int64_t v;+ clock_gettime(CLOCK_REALTIME, &sp);+ v = sp.tv_sec;+ v *= 1000;+ v += sp.tv_nsec / 1000000;+ return v;+}+ |
我想把ts_str()保留回来,可以使用-p选项,没处改动,都会让你选择如何处理,y是恢复,n是去掉
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | $ git co -p api/helper.cdiff --git a/src/api/helper.c b/src/api/helper.cindex fe4bf5b..f12060c 100644--- a/src/api/helper.c+++ b/src/api/helper.c@@ -171,19 +171,6 @@ const char *find_kv(struct key_val *kv, const char *key) return NULL; }-const char *ts_str()-{- static char ts[24];- struct timespec sp;- uint64_t v;- clock_gettime(CLOCK_REALTIME, &sp);- v = sp.tv_sec;- v *= 1000;- v += sp.tv_nsec / 1000000;- sprintf(ts, "%" PRIu64, v);- return ts;-}- int upper_hex(const char *in, int len, char *out, int sz) { int i;(1/2) Discard this hunk from worktree [y,n,q,a,d,j,J,g,/,e,?]? y@@ -480,6 +467,17 @@ int ts() return (int)ts.tv_sec; }+int64_t tsms()+{+ struct timespec sp;+ int64_t v;+ clock_gettime(CLOCK_REALTIME, &sp);+ v = sp.tv_sec;+ v *= 1000;+ v += sp.tv_nsec / 1000000;+ return v;+}+ int time_valid(const char *time_str, const char *format, const int period) { struct tm tm = {0};(2/2) Discard this hunk from worktree [y,n,q,a,d,K,g,/,e,?]? n |
结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | $ git diff api/helper.cdiff --git a/src/api/helper.c b/src/api/helper.cindex fe4bf5b..5d9c586 100644--- a/src/api/helper.c+++ b/src/api/helper.c@@ -480,6 +480,17 @@ int ts() return (int)ts.tv_sec; }+int64_t tsms()+{+ struct timespec sp;+ int64_t v;+ clock_gettime(CLOCK_REALTIME, &sp);+ v = sp.tv_sec;+ v *= 1000;+ v += sp.tv_nsec / 1000000;+ return v;+}+ int time_valid(const char *time_str, const char *format, const int period) { struct tm tm = {0}; |