From 61cefe95ef5e1db9734fe257195b06358b00ba94 Mon Sep 17 00:00:00 2001 From: mike Date: Wed, 14 Dec 2016 10:36:40 +0800 Subject: [PATCH 01/22] add tag_reset desc --- tag_reset.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 tag_reset.txt diff --git a/tag_reset.txt b/tag_reset.txt new file mode 100644 index 0000000..2484785 --- /dev/null +++ b/tag_reset.txt @@ -0,0 +1,2 @@ +1.添加git tag -a v1.0 -m"stable version 1.0" + From a2f0622db8afedfef6423cde013859c464cb3153 Mon Sep 17 00:00:00 2001 From: mike Date: Wed, 14 Dec 2016 10:39:25 +0800 Subject: [PATCH 02/22] delete tag --- tag_reset.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tag_reset.txt b/tag_reset.txt index 2484785..6fbd7a6 100644 --- a/tag_reset.txt +++ b/tag_reset.txt @@ -1,2 +1,4 @@ 1.添加git tag -a v1.0 -m"stable version 1.0" +2.删除tag标签 +git tag -d v1.0 From cdd8815f6ef07cc5eca2134b52f35aca64de3cf8 Mon Sep 17 00:00:00 2001 From: mike Date: Wed, 14 Dec 2016 10:41:47 +0800 Subject: [PATCH 03/22] push tags to origin --- tag_reset.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tag_reset.txt b/tag_reset.txt index 6fbd7a6..aba183b 100644 --- a/tag_reset.txt +++ b/tag_reset.txt @@ -1,4 +1,5 @@ 1.添加git tag -a v1.0 -m"stable version 1.0" -2.删除tag标签 -git tag -d v1.0 +2.删除tag标签 git tag -d v1.0 +3.查看tag 标签 git tag 或者git show +4.推送到远程仓库 git push origin --tags From 7d899d9df299f2db778341dcdbbe9a063ebb8c60 Mon Sep 17 00:00:00 2001 From: mike Date: Wed, 14 Dec 2016 10:43:26 +0800 Subject: [PATCH 04/22] delete origin tag --- tag_reset.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tag_reset.txt b/tag_reset.txt index aba183b..5579448 100644 --- a/tag_reset.txt +++ b/tag_reset.txt @@ -2,4 +2,8 @@ 2.删除tag标签 git tag -d v1.0 3.查看tag 标签 git tag 或者git show 4.推送到远程仓库 git push origin --tags +5.删除远程仓库tag, 主要有三种方法 + a. git push origin :v1.0 + b. git push origin :refs/tags/[tagname] + c. git push origin –delete [tagname] From d9f45605f14e14132294774af65b9849b193eef4 Mon Sep 17 00:00:00 2001 From: mike Date: Wed, 14 Dec 2016 10:49:52 +0800 Subject: [PATCH 05/22] =?UTF-8?q?=E5=80=9F=E5=8A=A9tag=E5=9B=9E=E9=80=80?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tag_reset.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tag_reset.txt b/tag_reset.txt index 5579448..964c299 100644 --- a/tag_reset.txt +++ b/tag_reset.txt @@ -6,4 +6,8 @@ a. git push origin :v1.0 b. git push origin :refs/tags/[tagname] c. git push origin –delete [tagname] +6.快速回退版本 +1.git show v0.1 得到commit id(假如commit id 前六位:123456) +2.git reset --hard 123456 +3.通过上述步骤版本就回退到了v0.1tag的版本. From 23696900668935e2495f7e5f7e2675578ef57f50 Mon Sep 17 00:00:00 2001 From: mike Date: Wed, 14 Dec 2016 11:43:22 +0800 Subject: [PATCH 06/22] =?UTF-8?q?=E5=80=9F=E5=8A=A9tag=E5=9B=9E=E9=80=80?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 65 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2a28481..dbc411b 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,70 @@ for learning git command. 3. `$git merge origin/master` 确认无误后合并`master`分支代码 -## 注意事项 - +### 注意事项 1. 假如`master`为项目的最终主分支, 拉么其它子分支每次提交代码到自己分支分支时,均应该先执行`fetch`和`merge`最终主分支`master`代码,确认无冲突和错误时,才提交到本分支,这样便于最终主分支每次合并其它分支时都没有冲突和错误存在,减少沟通和修改时间(如果主分支合并者与子分支不是同一个人开发,辣么合并主分支产生冲突和错误时,就需要子分支的同事一起协同才能解决,而这在提交自己分支时先`fetch`和`merge`主分支后可以避免的) + +## 借助git tag 标签快速准确回退版本 + +1. 打标签 +发布文档版本之后一般建议打一个标签,方便标识和相关操作, +```bash +git tag -a v1.0 -m"v1.0 stable version" +``` +2. 推送标签到远程仓库 +当本地打完标签觉得可以了之后,就应该及时推送到远程仓库, +```bash +git push origin --tags +``` + +3. 查看有哪些标签 + 1. 查看有哪些标签名称 + ```bash + git tag + ``` + 2. 具体查看某个标签的详细信息 + ```bash + #git show + git show v1.0 + ``` + +4. 删除标签 + 1. 删除本地标签 + ```bash + # git tag -d + git tag -d v1.0 + ``` + 2. 删除远程仓库的标签 + ```bash + $git push origin :v1.0 #方法一 + $git push origin :refs/tags/[tagname] #方法二 + $git push origin –delete [tagname] #方法三 + ``` +5. 借助标签快速向后回退版本 + 每次发布版本之前都应该对前一次稳定版本打上一个标签,当新发布版本存在bug时,则可以通过标签快速回退到标签指定的稳定版本,具体实施步骤, + 1. 为当前bug版本新建一个分支 + ```bash + # $git checkout + $git checkout v0.1 bugfix + # 或者 直接在bug版本目录下, git checkout -b bugfix + ``` + 2. 借助tag回退到稳定版本 + ```bash + $git show #查询待回退稳定版本的commit-id(假如commit-id 前六位123456) + $git reset --hard #执行回退 + $git push -u origin master #将回退版本推送到远程服务器 + ``` + 3. 合并已修复的bugfix分支 + ```bash + $git checkout master #回到主分支 + $git merge bugfix #合并 + ``` + +6. 向前回退版本 +当执行`$git reset --hard `命令向后回退之后,用`git log`是看不到之前提交的`log`了, 那如果要向前回退应该怎么办? 可以借助`$git relog`命令来操作, +```bash +$git relog #查询待向前回退版本的commit-id +$git reset --hard #执行回退 +``` + From 2c1b9645411acec5666606deb41491b7cdb1424d Mon Sep 17 00:00:00 2001 From: mike Date: Wed, 14 Dec 2016 11:48:04 +0800 Subject: [PATCH 07/22] update README --- README.md | 97 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 49 insertions(+), 48 deletions(-) diff --git a/README.md b/README.md index dbc411b..f40ea46 100644 --- a/README.md +++ b/README.md @@ -68,61 +68,62 @@ for learning git command. ## 借助git tag 标签快速准确回退版本 -1. 打标签 +1.打标签 发布文档版本之后一般建议打一个标签,方便标识和相关操作, ```bash -git tag -a v1.0 -m"v1.0 stable version" +$git tag -a v1.0 -m"v1.0 stable version" ``` -2. 推送标签到远程仓库 +2.推送标签到远程仓库 当本地打完标签觉得可以了之后,就应该及时推送到远程仓库, ```bash -git push origin --tags +$git push origin --tags ``` -3. 查看有哪些标签 - 1. 查看有哪些标签名称 - ```bash - git tag - ``` - 2. 具体查看某个标签的详细信息 - ```bash - #git show - git show v1.0 - ``` - -4. 删除标签 - 1. 删除本地标签 - ```bash - # git tag -d - git tag -d v1.0 - ``` - 2. 删除远程仓库的标签 - ```bash - $git push origin :v1.0 #方法一 - $git push origin :refs/tags/[tagname] #方法二 - $git push origin –delete [tagname] #方法三 - ``` -5. 借助标签快速向后回退版本 - 每次发布版本之前都应该对前一次稳定版本打上一个标签,当新发布版本存在bug时,则可以通过标签快速回退到标签指定的稳定版本,具体实施步骤, - 1. 为当前bug版本新建一个分支 - ```bash - # $git checkout - $git checkout v0.1 bugfix - # 或者 直接在bug版本目录下, git checkout -b bugfix - ``` - 2. 借助tag回退到稳定版本 - ```bash - $git show #查询待回退稳定版本的commit-id(假如commit-id 前六位123456) - $git reset --hard #执行回退 - $git push -u origin master #将回退版本推送到远程服务器 - ``` - 3. 合并已修复的bugfix分支 - ```bash - $git checkout master #回到主分支 - $git merge bugfix #合并 - ``` - -6. 向前回退版本 +3.查看有哪些标签 +1. 查看有哪些标签名称 +```bash +$git tag +``` +2. 具体查看某个标签的详细信息 +```bash +#$git show +$git show v1.0 +``` + +4.删除标签 +1. 删除本地标签 +```bash +# git tag -d +git tag -d v1.0 +``` +2. 删除远程仓库的标签 +```bash +$git push origin :v1.0 #方法一 +$git push origin :refs/tags/ #方法二 +$git push origin –delete #方法三 +``` + +5.借助标签快速向后回退版本 +每次发布版本之前都应该对前一次稳定版本打上一个标签,当新发布版本存在bug时,则可以通过标签快速回退到标签指定的稳定版本,具体实施步骤, +1. 为当前bug版本新建一个分支 +```bash +# $git checkout +$git checkout v0.1 bugfix +# 或者 直接在bug版本目录下, git checkout -b bugfix +``` +2. 借助tag回退到稳定版本 +```bash +$git show #查询待回退稳定版本的commit-id(假如commit-id 前六位123456) +$git reset --hard #执行回退 +$git push -u origin master #将回退版本推送到远程服务器 +``` +3. 合并已修复的bugfix分支 +```bash +$git checkout master #回到主分支 +$git merge bugfix #合并 +``` + +6.向前回退版本 当执行`$git reset --hard `命令向后回退之后,用`git log`是看不到之前提交的`log`了, 那如果要向前回退应该怎么办? 可以借助`$git relog`命令来操作, ```bash $git relog #查询待向前回退版本的commit-id From 64b1ef31a8c395cce68b1d0e700340537ea5e54d Mon Sep 17 00:00:00 2001 From: mike Date: Wed, 14 Dec 2016 11:50:36 +0800 Subject: [PATCH 08/22] update README --- README.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f40ea46..fbc6c96 100644 --- a/README.md +++ b/README.md @@ -80,23 +80,27 @@ $git push origin --tags ``` 3.查看有哪些标签 -1. 查看有哪些标签名称 + +3.1 查看有哪些标签名称 ```bash $git tag ``` -2. 具体查看某个标签的详细信息 + +3.2 具体查看某个标签的详细信息 ```bash #$git show $git show v1.0 ``` 4.删除标签 -1. 删除本地标签 + +4.1 删除本地标签 ```bash # git tag -d git tag -d v1.0 ``` -2. 删除远程仓库的标签 + +4.2 删除远程仓库的标签 ```bash $git push origin :v1.0 #方法一 $git push origin :refs/tags/ #方法二 @@ -105,19 +109,21 @@ $git push origin –delete #方法三 5.借助标签快速向后回退版本 每次发布版本之前都应该对前一次稳定版本打上一个标签,当新发布版本存在bug时,则可以通过标签快速回退到标签指定的稳定版本,具体实施步骤, -1. 为当前bug版本新建一个分支 +5.1 为当前bug版本新建一个分支 ```bash # $git checkout $git checkout v0.1 bugfix # 或者 直接在bug版本目录下, git checkout -b bugfix ``` -2. 借助tag回退到稳定版本 + +5.2 借助tag回退到稳定版本 ```bash $git show #查询待回退稳定版本的commit-id(假如commit-id 前六位123456) $git reset --hard #执行回退 $git push -u origin master #将回退版本推送到远程服务器 ``` -3. 合并已修复的bugfix分支 + +5.3 合并已修复的bugfix分支 ```bash $git checkout master #回到主分支 $git merge bugfix #合并 From 6ea6bf78fbb9163868fd8b0f29e0958d3a3afae6 Mon Sep 17 00:00:00 2001 From: mike Date: Wed, 14 Dec 2016 13:27:53 +0800 Subject: [PATCH 09/22] update README --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fbc6c96..0016ee3 100644 --- a/README.md +++ b/README.md @@ -108,11 +108,13 @@ $git push origin –delete #方法三 ``` 5.借助标签快速向后回退版本 + 每次发布版本之前都应该对前一次稳定版本打上一个标签,当新发布版本存在bug时,则可以通过标签快速回退到标签指定的稳定版本,具体实施步骤, + 5.1 为当前bug版本新建一个分支 ```bash # $git checkout -$git checkout v0.1 bugfix +$git checkout v1.0 bugfix # 或者 直接在bug版本目录下, git checkout -b bugfix ``` From 39c60feda6169e363965b085fceb2087354fb194 Mon Sep 17 00:00:00 2001 From: researchlab Date: Fri, 30 Dec 2016 11:36:28 +0800 Subject: [PATCH 10/22] set user.name and user.email for each repository --- README.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/README.md b/README.md index 0016ee3..52c1834 100644 --- a/README.md +++ b/README.md @@ -138,3 +138,39 @@ $git relog #查询待向前回退版本的commit-id $git reset --hard #执行回退 ``` + +## git config + +全局配置和项目配置 + +全局配置信息在: `~/.gitconfig` + +项目配置在项目目录下的: `./.git/config` + +`git config --global`操作全局配置, 不带`--global`选项的话,会尝试相对于当前目录的:`./git/config`, 找不到的话,报错。 + +为各个项目单独配置`user.name`和`user.email` + +你可能会在不同的几个项目中工作,各个项目的用户名可能不同,为了保证日志的准确性和提交时无误,最好对各个项目设置`user.name`和`user.email` + +```bash +# for global setting +git config --global user.name xxx +git config --global user.email xxx@xxx.com + +# for repository +git config user.name xxxx +git config user.email xxxx@xxx.com +``` + +在本地`git clone`一个远程项目或`git init`一个新项目时, `git`提交默认使用的是全局的`user.name`和`user.email`信息, 可以在当前项目根目录下使用下面的命令构建属于当前项目提交着的名字和邮箱,如下: +```bash +git config user.name xxx +git config user.email.xxx@xxx.com +``` +在当期项目根目录下执行上述两条命令之后,在`.git/config`文件中会新增如下信息, 当然如果直接手动在增加如下信息,而不使用上述命令,效果也是一样的. +```bash +[user] + name = xxxxxx + email = xxxxxxx +``` From 5b4ff5c8b3156cb6f90837734a76f95dab8c41a2 Mon Sep 17 00:00:00 2001 From: researchlab Date: Fri, 30 Dec 2016 11:42:22 +0800 Subject: [PATCH 11/22] update README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 52c1834..711c6ff 100644 --- a/README.md +++ b/README.md @@ -174,3 +174,5 @@ git config user.email.xxx@xxx.com name = xxxxxx email = xxxxxxx ``` + +> 只有当 user.name 和 user.email 设置和github帐号完全相同,并且在上述设置完成之后git add 添加的提交 才会被github认为是github帐号者提交的,否在被认为是第三方提交. From bb7c97826d3ea95893fa45aafd3a662bcf4300f2 Mon Sep 17 00:00:00 2001 From: researchlab Date: Fri, 30 Dec 2016 15:18:17 +0800 Subject: [PATCH 12/22] add revert reset cmd desc --- revert_reset.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 revert_reset.md diff --git a/revert_reset.md b/revert_reset.md new file mode 100644 index 0000000..2bfabcf --- /dev/null +++ b/revert_reset.md @@ -0,0 +1,47 @@ +## 远程仓库回滚 + +### 删除最后一次提交 + +使用`revert`或`reset`命令都可以方便的删除最后一次提交, 如下: + +```bash +git revert HEAD +git push origin master +# 或者 +git reset --hard HEAD^ +git push origin master -f +``` +> -f 参数是强制提交,因为reset之后本地库落后于远程库一个版本,因此需要强制提交 + +使用`revert`和`reset`命令的区别在于, +1.`revert`是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,`以前的历史记录都在`,而reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录; +2.`reset`是删除远程仓库的最后一次提交, 并且不保留历史记录。 +最直白的区别在于,假设最后一次提交的记录为A, 那用`revert`回退版本之后,A记录依然存在,且会生成一条新的记录; 如用`reset`命令回退则A记录被删除不会存在了。 + + +### 删除历史某次提交 + +1.先用git log命令在历史记录中查找到想要删除的某次提交的commit id +2.执行以下`rebase`命令("commit id"替换为想要删除的提交的"commit id",需要注意最后的^号,意思是commit id的前一次提交) + +```bash +git rebase -i "commit id"^ +``` +3.执行该条命令之后会打开一个编辑框,列出了包含该次提交在内之后的所有提交,然后在编辑框中删除你想要删除的提交所在行,然后保存退出就好啦,如果有冲突的需要解决冲突。接下来,执行以下命令,将本地仓库提交到远程库就完成了 + +```bash +git push origin master -f +``` + +### 修改历史某次提交 + +这种情况的解决方法类似于第二种情况,只需要在第二条打开编辑框之后,将你想要修改的提交所在行的pick替换成edit然后保存退出,这个时候rebase会停在你要修改的提交,然后做你需要的修改,修改完毕之后,执行以下命令 + +```bash +git add . +git commit --amend +git rebase --continue +``` + +如果你在之前的编辑框修改了n行,也就是说要对n次提交做修改,则需要重复执行以上步骤n次。 +需要注意的是,在执行rebase命令对指定提交修改或删除之后,该次提交之后的所有提交的"commit id"都会改变。 From f80bbc33f97c2c7fd5c0fc9df40d5eb84f25ca47 Mon Sep 17 00:00:00 2001 From: researchlab Date: Fri, 30 Dec 2016 15:27:31 +0800 Subject: [PATCH 13/22] update revert cmd desc --- revert_reset.md | 1 + 1 file changed, 1 insertion(+) diff --git a/revert_reset.md b/revert_reset.md index 2bfabcf..c8eb242 100644 --- a/revert_reset.md +++ b/revert_reset.md @@ -45,3 +45,4 @@ git rebase --continue 如果你在之前的编辑框修改了n行,也就是说要对n次提交做修改,则需要重复执行以上步骤n次。 需要注意的是,在执行rebase命令对指定提交修改或删除之后,该次提交之后的所有提交的"commit id"都会改变。 + From 7fa16f75edb1fbde084ee07420f385dcc91fc22e Mon Sep 17 00:00:00 2001 From: researchlab Date: Fri, 30 Dec 2016 17:07:38 +0800 Subject: [PATCH 14/22] update README --- README.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/README.md b/README.md index 711c6ff..f0be630 100644 --- a/README.md +++ b/README.md @@ -176,3 +176,53 @@ git config user.email.xxx@xxx.com ``` > 只有当 user.name 和 user.email 设置和github帐号完全相同,并且在上述设置完成之后git add 添加的提交 才会被github认为是github帐号者提交的,否在被认为是第三方提交. + + +## 远程仓库回滚 + +### 删除最后一次提交 + +使用`revert`或`reset`命令都可以方便的删除最后一次提交, 如下: + +```bash +git revert HEAD +git push origin master +# 或者 +git reset --hard HEAD^ +git push origin master -f +``` +> -f 参数是强制提交,因为reset之后本地库落后于远程库一个版本,因此需要强制提交 + +使用`revert`和`reset`命令的区别在于, +1.`revert`是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,`以前的历史记录都在`,而reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录; +2.`reset`是删除远程仓库的最后一次提交, 并且不保留历史记录。 +最直白的区别在于,假设最后一次提交的记录为A, 那用`revert`回退版本之后,A记录依然存在,且会生成一条新的记录; 如用`reset`命令回退则A记录被删除不会存在了。 + + +### 删除历史某次提交 + +1.先用git log命令在历史记录中查找到想要删除的某次提交的commit id +2.执行以下`rebase`命令("commit id"替换为想要删除的提交的"commit id",需要注意最后的^号,意思是commit id的前一次提交) + +```bash +git rebase -i "commit id"^ +``` +3.执行该条命令之后会打开一个编辑框,列出了包含该次提交在内之后的所有提交,然后在编辑框中删除你想要删除的提交所在行,然后保存退出就好啦,如果有冲突的需要解决冲突。接下来,执行以下命令,将本地仓库提交到远程库就完成了 + +```bash +git push origin master -f +``` + +### 修改历史某次提交 + +这种情况的解决方法类似于第二种情况,只需要在第二条打开编辑框之后,将你想要修改的提交所在行的pick替换成edit然后保存退出,这个时候rebase会停在你要修改的提交,然后做你需要的修改,修改完毕之后,执行以下命令 + +```bash +git add . +git commit --amend +git rebase --continue +``` + +如果你在之前的编辑框修改了n行,也就是说要对n次提交做修改,则需要重复执行以上步骤n次。 +需要注意的是,在执行rebase命令对指定提交修改或删除之后,该次提交之后的所有提交的"commit id"都会改变。 + From 31f0d8b7bdd52f0849577c1cdb78a4b1b4968116 Mon Sep 17 00:00:00 2001 From: researchlab Date: Sun, 2 Jul 2017 17:51:13 +0800 Subject: [PATCH 15/22] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f0be630..0e3ad1c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -#git_demo +# tips from learning git command for learning git command. From 8899575cc4158921a1f14f0ce85c681f5d795f76 Mon Sep 17 00:00:00 2001 From: researchlab Date: Sun, 2 Jul 2017 17:51:47 +0800 Subject: [PATCH 16/22] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0e3ad1c..8491bae 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ for learning git command. > 如果merge前, 想要看看fetch的代码和本分支的代码存在哪些差异和修改, 可以用$git diff master origin/dev 来查看差异 > 注意合并dev分支的命令是 $git merge origin/dev 而不是 $git merge origin dev. -## dev分支master分支代码的步骤: +## dev分支合并master分支代码的步骤: 假如现在`dev`分支上. From 018045ca2ba1c065b2f6ad4566ac4c4ae48cecd3 Mon Sep 17 00:00:00 2001 From: researchlab Date: Sun, 2 Jul 2017 17:54:03 +0800 Subject: [PATCH 17/22] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8491bae..68c2509 100644 --- a/README.md +++ b/README.md @@ -226,3 +226,5 @@ git rebase --continue 如果你在之前的编辑框修改了n行,也就是说要对n次提交做修改,则需要重复执行以上步骤n次。 需要注意的是,在执行rebase命令对指定提交修改或删除之后,该次提交之后的所有提交的"commit id"都会改变。 +## 其它 +- [git奇淫技巧](https://github.com/521xueweihan/git-tips) From 133fd6bb7eb5236b5f7be3c07ed8b8fc478749ca Mon Sep 17 00:00:00 2001 From: lihong Date: Thu, 21 Jun 2018 19:40:56 +0800 Subject: [PATCH 18/22] read diff after git pull --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index 68c2509..0793816 100644 --- a/README.md +++ b/README.md @@ -226,5 +226,25 @@ git rebase --continue 如果你在之前的编辑框修改了n行,也就是说要对n次提交做修改,则需要重复执行以上步骤n次。 需要注意的是,在执行rebase命令对指定提交修改或删除之后,该次提交之后的所有提交的"commit id"都会改变。 +### git pull之后查看别人修改的文件记录 +pull之后可以查看别人提交的日志记录或者文件差异 +```bash +#查看文件差异有如下方式: +#方式1 +git diff HEAD^ HEAD +(如果提示zsh: no matches found: HEAD^) 可以尝试修改为, +git diff HEAD\^ HEAD + +#查看修改日志记录有如下方式: +#方式1 +git show # view the diff of last commit +#方式2 +git whatchanged +#方式3 +git log --stat --date=relative +#方式4 +git log -p path_to_file +``` + ## 其它 - [git奇淫技巧](https://github.com/521xueweihan/git-tips) From 1e25fb286145c93d9a7729cbca570e08e255d9d7 Mon Sep 17 00:00:00 2001 From: hong li Date: Thu, 3 Oct 2019 17:42:53 +0800 Subject: [PATCH 19/22] add summary --- SUMMARY.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 SUMMARY.md diff --git a/SUMMARY.md b/SUMMARY.md new file mode 100644 index 0000000..131851b --- /dev/null +++ b/SUMMARY.md @@ -0,0 +1,4 @@ +# git command practice and tips + +* [Introduction](README.md) +* [log](log_cmd.md) From 7b62c06db7fc6e585c81e1ee514e1f78e7492f1b Mon Sep 17 00:00:00 2001 From: hong li Date: Wed, 7 Apr 2021 09:30:53 +0800 Subject: [PATCH 20/22] diff changes for the given path --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0793816..b28b66f 100644 --- a/README.md +++ b/README.md @@ -230,11 +230,15 @@ git rebase --continue pull之后可以查看别人提交的日志记录或者文件差异 ```bash #查看文件差异有如下方式: -#方式1 +#方式1(查看所有差异) git diff HEAD^ HEAD (如果提示zsh: no matches found: HEAD^) 可以尝试修改为, git diff HEAD\^ HEAD +#方式2(查看某一个文件的差异) +git diff HEAD^ file-path +git diff HEAD^ src/path/utils.go 查看的是 utils.go 更新后与本地之前之间的差异对比 + #查看修改日志记录有如下方式: #方式1 git show # view the diff of last commit From 4f8461de599d17174ebe7847d5a239f45fed2bbd Mon Sep 17 00:00:00 2001 From: hong li Date: Mon, 26 Apr 2021 13:12:49 +0800 Subject: [PATCH 21/22] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E4=BB=93=E5=BA=93=E6=96=87=E4=BB=B6=E5=A4=B9,=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E6=96=87=E4=BB=B6=E4=B8=8D=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index b28b66f..96c1abb 100644 --- a/README.md +++ b/README.md @@ -250,5 +250,21 @@ git log --stat --date=relative git log -p path_to_file ``` +## 删除远程仓库 但不删本地资源 + +将生成的临时文件提交到了远程分支, 但是本地分支又要保留的情况下,如何只删除远程分支这些文件,步骤, +1.将要删除的临时文件, 临时文件夹添加到.gitignore 并提交.gitignore到远程; +2.通过git rm -r --cached 待删除文件夹路径 删除这个文件夹缓存 +3.git commit -m"" comment +4.git push 提交 + +``` +git rm -r --cached vagrant/k8s_3node_centos_calico/.vagrant/ +git commit -m"clean .vagrant" +git push origin master -vvv +``` + + ## 其它 - [git奇淫技巧](https://github.com/521xueweihan/git-tips) + From 24844a0d73fc7356ec011011af1b3fbd06b74fba Mon Sep 17 00:00:00 2001 From: hong li Date: Tue, 18 May 2021 17:37:25 +0800 Subject: [PATCH 22/22] delete local branch --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 96c1abb..3d20020 100644 --- a/README.md +++ b/README.md @@ -264,6 +264,10 @@ git commit -m"clean .vagrant" git push origin master -vvv ``` +## 删除分支 + +1.删除本地分支 git branch -d ${branch_name} +2.强制删除本地分支 git branch -D ${branch_name} ## 其它 - [git奇淫技巧](https://github.com/521xueweihan/git-tips)