From 04dfd6e28050b0cef6f33851faf87545e5355f23 Mon Sep 17 00:00:00 2001 From: lxsz Date: Tue, 25 Aug 2020 11:16:36 +0800 Subject: [PATCH 1/8] Update git.txt --- tools/git.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/git.txt b/tools/git.txt index a114669..431d280 100644 --- a/tools/git.txt +++ b/tools/git.txt @@ -199,6 +199,8 @@ git branch -D 强制删除分支(丢弃未合并分支) ############################################################################## User 1: git remote [-v] 查看远程库信息(-v 查看详细信息) +git remote update origin --prune 更新分支列表(更新远程分支列表) +git remote update origin -p 更新分支列表(更新远程分支列表) git push origin [master/dev/...] 推送指定分支到远程 User 2: git clone 克隆到本地(只能克隆master) From 0d3e02eb41fff33468e7c6f5be2828493f0494a5 Mon Sep 17 00:00:00 2001 From: lxsz Date: Tue, 25 Aug 2020 15:34:47 +0800 Subject: [PATCH 2/8] Update git.txt --- tools/git.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/git.txt b/tools/git.txt index 431d280..20d5c5e 100644 --- a/tools/git.txt +++ b/tools/git.txt @@ -35,8 +35,10 @@ git status git status -s 文件状态缩略信息, 常见 A:新增; M:文件变更; ?:未track; D:删除 git diff git diff HEAD -- 查看工作区和版本库里面最新版本的区别 -git diff --check 检查是否有空白错误(regex:' \{1,\}$') -git diff --cached 查看已add的内容(绿M) +git diff --check 检查是否有空白错误(regex:' \{1,\}$') +git diff --cached 查看已add的内容(绿M) +git diff branch1 branch2 --stat 查看两个分支差异 +git diff branch1 branch2 查看分支文件具体差异 ############################################################################## # 查看历史版本、历史操作 From a9945b9d8e60262637caf62839e30e2531e879ef Mon Sep 17 00:00:00 2001 From: lxsz Date: Wed, 26 Aug 2020 16:47:46 +0800 Subject: [PATCH 3/8] Update git.txt --- tools/git.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/git.txt b/tools/git.txt index 20d5c5e..34abcf7 100644 --- a/tools/git.txt +++ b/tools/git.txt @@ -10,6 +10,7 @@ ############################################################################## git config --global "Your Name" git config --global "Email Address" +git config --global credential.helper store 保存密码(每次要输密码/重复输密码) ############################################################################## From 04905970d65c2419365b24d63a1df4534bd15b23 Mon Sep 17 00:00:00 2001 From: lxsz Date: Sat, 29 Aug 2020 12:48:34 +0800 Subject: [PATCH 4/8] Update git.txt --- tools/git.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/git.txt b/tools/git.txt index 34abcf7..386b44f 100644 --- a/tools/git.txt +++ b/tools/git.txt @@ -35,11 +35,11 @@ git commit --amend --author "user_name " 修改最近提交用户名 git status git status -s 文件状态缩略信息, 常见 A:新增; M:文件变更; ?:未track; D:删除 git diff -git diff HEAD -- 查看工作区和版本库里面最新版本的区别 -git diff --check 检查是否有空白错误(regex:' \{1,\}$') -git diff --cached 查看已add的内容(绿M) -git diff branch1 branch2 --stat 查看两个分支差异 -git diff branch1 branch2 查看分支文件具体差异 +git diff HEAD -- 查看工作区和版本库里面最新版本的区别 +git diff --check 检查是否有空白错误(regex:' \{1,\}$') +git diff --cached 查看已add的内容(绿M) +git diff branch1 branch2 --stat 查看两个分支差异 +git diff branch1 branch2 查看分支文件具体差异 ############################################################################## # 查看历史版本、历史操作 From b6422d3117b9b4c1189d8530d6cffc1860919634 Mon Sep 17 00:00:00 2001 From: lxsz Date: Sat, 29 Aug 2020 12:52:53 +0800 Subject: [PATCH 5/8] Update git.txt --- tools/git.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/git.txt b/tools/git.txt index 386b44f..7fd4160 100644 --- a/tools/git.txt +++ b/tools/git.txt @@ -35,11 +35,11 @@ git commit --amend --author "user_name " 修改最近提交用户名 git status git status -s 文件状态缩略信息, 常见 A:新增; M:文件变更; ?:未track; D:删除 git diff -git diff HEAD -- 查看工作区和版本库里面最新版本的区别 -git diff --check 检查是否有空白错误(regex:' \{1,\}$') -git diff --cached 查看已add的内容(绿M) -git diff branch1 branch2 --stat 查看两个分支差异 -git diff branch1 branch2 查看分支文件具体差异 +git diff HEAD -- 查看工作区和版本库里面最新版本的区别 +git diff --check 检查是否有空白错误(regex:' \{1,\}$') +git diff --cached 查看已add的内容(绿M) +git diff branch1 branch2 --stat 查看两个分支差异 +git diff branch1 branch2 查看分支文件具体差异 ############################################################################## # 查看历史版本、历史操作 From a3485c4c4da079ab9362a7e0f52214f7bce198db Mon Sep 17 00:00:00 2001 From: lxsz Date: Thu, 10 Sep 2020 11:26:38 +0800 Subject: [PATCH 6/8] Update git.txt --- tools/git.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/git.txt b/tools/git.txt index 7fd4160..3caa8a7 100644 --- a/tools/git.txt +++ b/tools/git.txt @@ -154,6 +154,7 @@ git switch -c 创建并切换至分支 git branch 查看已有分支(* 表示当前分支) git merge 合并到当前分支(通常在master分支下操作) git branch -d 删除分支 +git branch -m oldbranchname newname 删除分支 ############################################################################## From 06dd47efe76710f2f98c181c82e2b08c2be2c01a Mon Sep 17 00:00:00 2001 From: lxsz Date: Tue, 15 Sep 2020 10:21:41 +0800 Subject: [PATCH 7/8] Update git.txt --- tools/git.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/git.txt b/tools/git.txt index 3caa8a7..6e19973 100644 --- a/tools/git.txt +++ b/tools/git.txt @@ -452,3 +452,8 @@ git config [--global] alias. '' 为所有工作区/当 https://www.liaoxuefeng.com/wiki/896043488029600 https://git-scm.com/book/en/v2 +############################################################################## +# 子模块 +############################################################################## +git submodule foreach git pull 子模块更新 + From 947f91115886d97e14f236734480af7ca8b6a296 Mon Sep 17 00:00:00 2001 From: lxsz Date: Mon, 21 Sep 2020 09:30:57 +0800 Subject: [PATCH 8/8] Update git.txt --- tools/git.txt | 134 +++++++++++++++++++++++++------------------------- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/tools/git.txt b/tools/git.txt index 6e19973..61a74cc 100644 --- a/tools/git.txt +++ b/tools/git.txt @@ -10,7 +10,7 @@ ############################################################################## git config --global "Your Name" git config --global "Email Address" -git config --global credential.helper store 保存密码(每次要输密码/重复输密码) +git config --global credential.helper store 保存密码(每次要输密码/重复输密码) ############################################################################## @@ -95,26 +95,26 @@ git log --since="1 weeks 2 days 3 hours 40 minutes 50 seconds ago" 过去1周2 ############################################################################## # 版本回退、前进 ############################################################################## -git reset --hard HEAD^ 回退到上1版本 -git reset --hard HEAD~5 回退到上5个版本 -git reset --hard id 回退到指定版本 +git reset --hard HEAD^ 回退到上1版本 +git reset --hard HEAD~5 回退到上5个版本 +git reset --hard id 回退到指定版本 ############################################################################## # 撤销修改 ############################################################################## -git checkout -- 撤销修改:误修改工作区文件,未git add/commit -git restore 撤销修改:误修改工作区文件,未git add/commit -git reset HEAD 撤销git add:误将文件加入暂存区(git add),未git commit -git reset --hard HEAD^ 撤销git commit:误将文件提交(一旦提交,只能通过版本回退进行撤销) +git checkout -- 撤销修改:误修改工作区文件,未git add/commit +git restore 撤销修改:误修改工作区文件,未git add/commit +git reset HEAD 撤销git add:误将文件加入暂存区(git add),未git commit +git reset --hard HEAD^ 撤销git commit:误将文件提交(一旦提交,只能通过版本回退进行撤销) ############################################################################## # 删除与恢复 ############################################################################## git rm/add -git commit -m "remove " 删除版本库中的:删除工作区文件后,继续删除版本库中相应的文件 -git checkout -- 根据版本库中的恢复工作区 +git commit -m "remove " 删除版本库中的:删除工作区文件后,继续删除版本库中相应的文件 +git checkout -- 根据版本库中的恢复工作区 ############################################################################## # 清理工作区未track也未ignore的文件或文件夹(如各种临时.swp, .patch文件等) @@ -128,33 +128,33 @@ git clean -df #清理所有未track文件和文件夹, 常用, 但使用前确 ############################################################################## # 关联GitHub远程仓库(本地到远程) ############################################################################## -git remote add origin 在本地工作区目录下按照 GitHub 提示进行关联 -git remote rm origin 解除错误关联 -git push -u origin master 第一次将本地仓库推送至远程仓库(每次在本地提交后进行操作) -git push origin master 以后每次将本地仓库推送至远程仓库(每次在本地提交后进行操作) +git remote add origin 在本地工作区目录下按照 GitHub 提示进行关联 +git remote rm origin 解除错误关联 +git push -u origin master 第一次将本地仓库推送至远程仓库(每次在本地提交后进行操作) +git push origin master 以后每次将本地仓库推送至远程仓库(每次在本地提交后进行操作) : - git@github.com:/.git - https://github.com//.git + git@github.com:/.git + https://github.com//.git ############################################################################## # 克隆GitHub远程仓库(远程到本地) ############################################################################## -git clone git协议速度更快但通常公司内网不允许,https协议速度慢 +git clone git协议速度更快但通常公司内网不允许,https协议速度慢 ############################################################################## # 分支管理:创建、切换、查看、合并、删除 ############################################################################## -git branch 创建分支 -git checkout 切换至分支 -git switch 切换至分支 -git checkout -b 创建并切换至分支 -git switch -c 创建并切换至分支 -git branch 查看已有分支(* 表示当前分支) -git merge 合并到当前分支(通常在master分支下操作) -git branch -d 删除分支 -git branch -m oldbranchname newname 删除分支 +git branch 创建分支 +git checkout 切换至分支 +git switch 切换至分支 +git checkout -b 创建并切换至分支 +git switch -c 创建并切换至分支 +git branch 查看已有分支(* 表示当前分支) +git merge 合并到当前分支(通常在master分支下操作) +git branch -d 删除分支 +git branch -m oldbranchname newname 删除分支 ############################################################################## @@ -174,63 +174,63 @@ git merge --no-ff -m "descriptions" ############################################################################## # 开发流程: ############################################################################## -master分支 发布稳定版本 -dev分支 发布开发版本 -分支 个人开发分支(个人开发完成将该分支并入dev,同时保留该分支,继续开发) +master分支 发布稳定版本 +dev分支 发布开发版本 +分支 个人开发分支(个人开发完成将该分支并入dev,同时保留该分支,继续开发) ############################################################################## # Bug分支管理(建立单独分支进行bug修复) ############################################################################## 软件开发中,bug就像家常便饭一样。有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。 -git stash 保存当前工作现场(在dev未完成开发,但master有bug需要修复) -git stash pop 回到dev分支后恢复工作现场(list中的现场会同时被删除) -git stash list 查看当前存储的工作现场 -git stash apply stash@{#} 回到指定工作现场(list中的现场不会被删除,需要用git stash drop) -git stash drop stash@{#} 删除指定工作现场 -git cherry-pick 在master修复好bug后,在dev复制一遍bug修复流程 +git stash 保存当前工作现场(在dev未完成开发,但master有bug需要修复) +git stash pop 回到dev分支后恢复工作现场(list中的现场会同时被删除) +git stash list 查看当前存储的工作现场 +git stash apply stash@{#} 回到指定工作现场(list中的现场不会被删除,需要用git stash drop) +git stash drop stash@{#} 删除指定工作现场 +git cherry-pick 在master修复好bug后,在dev复制一遍bug修复流程 ############################################################################## # Feature分支管理(建立单独分支添加新功能) ############################################################################## 软件开发中,总有无穷无尽的新的功能要不断添加进来。添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。 -git branch -D 强制删除分支(丢弃未合并分支) +git branch -D 强制删除分支(丢弃未合并分支) ############################################################################## # 协作与分支推送 ############################################################################## User 1: -git remote [-v] 查看远程库信息(-v 查看详细信息) -git remote update origin --prune 更新分支列表(更新远程分支列表) -git remote update origin -p 更新分支列表(更新远程分支列表) -git push origin [master/dev/...] 推送指定分支到远程 +git remote [-v] 查看远程库信息(-v 查看详细信息) +git remote update origin --prune 更新分支列表(更新远程分支列表) +git remote update origin -p 更新分支列表(更新远程分支列表) +git push origin [master/dev/...] 推送指定分支到远程 User 2: -git clone 克隆到本地(只能克隆master) -git checkout -b dev origin/dev 本地新建分支并关联远程 -git add/commit/push 添加、提交、推送更新 +git clone 克隆到本地(只能克隆master) +git checkout -b dev origin/dev 本地新建分支并关联远程 +git add/commit/push 添加、提交、推送更新 User 1: -git add/commit/push 推送时报错(与user 2推送的更新冲突) +git add/commit/push 推送时报错(与user 2推送的更新冲突) git pull -git branch --set-upstream-to=origin/ 本地与远程关联 -git pull 拉取远程文件(并解决冲突) -git commit/push 重新提交并推送 +git branch --set-upstream-to=origin/ 本地与远程关联 +git pull 拉取远程文件(并解决冲突) +git commit/push 重新提交并推送 ############################################################################## # 标签管理(常用于版本管理):查看、创建、操作 ############################################################################## -git tag 查看标签 -git show 查看指定标签 -git log --pretty=oneline --abbrev-commit --decorate=full 在log中显示标签 -git tag 为上次commit位置打标签 -git tag 为指定commit位置打标签 -git tag -a -m "descriptions" 为指定commit打标并添加描述 -git tag -d 删除本地标签 -git push origin 推送指定标签到远程 -git push origin --tags 推送所有本地标签到远程 -git push origin :refs/tags/ 删除远程标签(先删除本地标签) +git tag 查看标签 +git show 查看指定标签 +git log --pretty=oneline --abbrev-commit --decorate=full 在log中显示标签 +git tag 为上次commit位置打标签 +git tag 为指定commit位置打标签 +git tag -a -m "descriptions" 为指定commit打标并添加描述 +git tag -d 删除本地标签 +git push origin 推送指定标签到远程 +git push origin --tags 推送所有本地标签到远程 +git push origin :refs/tags/ 删除远程标签(先删除本地标签) ############################################################################## # rebase(换基) @@ -420,30 +420,30 @@ fork --> clone --> add/commit/push --> pull request ############################################################################## # 其他配置 ############################################################################## -git config --global color.ui true 显示颜色 +git config --global color.ui true 显示颜色 ############################################################################## # 配置.gitignore文件 ############################################################################## -// 忽略文件夹 -*.zip 忽略.zip文件 -// 忽略指定文件 +// 忽略文件夹 +*.zip 忽略.zip文件 +// 忽略指定文件 ############################################################################## # 文件.gitignore生效后 ############################################################################## -git add -f 强制添加 -git check-ignore -v 查看生效规则 +git add -f 强制添加 +git check-ignore -v 查看生效规则 ############################################################################## # 配置别名 ############################################################################## -git config [--global] alias. '' 为所有工作区/当前工作区配置别名 -.git/config 当前工作区的配置文件 -~/.gitconfig 当前用户的配置文件 +git config [--global] alias. '' 为所有工作区/当前工作区配置别名 +.git/config 当前工作区的配置文件 +~/.gitconfig 当前用户的配置文件 ############################################################################## @@ -455,5 +455,5 @@ https://git-scm.com/book/en/v2 ############################################################################## # 子模块 ############################################################################## -git submodule foreach git pull 子模块更新 +git submodule foreach git pull 子模块更新