前言 Git知识的补充
参考: 阮一峰 Git 教程
命令 stash暂存 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 # 保存当前未commit的代码 git stash # 保存当前未commit的代码并添加备注 git stash save "备注的内容" # 列出stash的所有记录 git stash list # 删除stash的所有记录 git stash clear # 应用最近一次的stash git stash apply # 应用最近一次的stash,随后删除该记录 git stash pop # 删除最近的一次stash git stash drop # 暂存未被add 的文件,以及新加的文件,无 -u 不包含。 git stash push --keep-index -u
reset****重置 重置后需要git push -f强制推送
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # 并且会改变暂存区 git reset HEAD^ # 倒退指针的同时,不改变暂存区 git reset --soft HEAD^ # 倒退指针的同时,改变工作区 git reset --hard HEAD^ # 如果不指定回滚的位置,那么等同于撤销修改。 # 撤销上一次向暂存区添加的所有文件 $ git reset # 无任何效果 $ git reset --soft # 同时撤销暂存区和工作区的修改, # 回复到上一次提交的状态 $ git reset --hard
revert回滚 1 2 3 4 # 查看日志(对应的commitID) git log # 将现有的提交还原,恢复提交的内容,并生成一条还原记录 git revert <commitID>
Sourcetree对应的操作 操作reset 重置
Git项目更换地址 1 2 3 4 5 6 7 git remote rm origin git remote add origin XXX
git 学习补充 参考:参考笔记 参考笔记
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 # 1. git 查看配置信息 git config --global user.name git config --global user.email git config --list git status # 查看状态 git diff # 当前做的那些更新没有暂存? git diff --cached 或者git diff --staged (1.6.1以上版本) # 有哪些更新已经暂存起来准备好了下次提交 git log --oneline # 查看当前分支地目录,其他分支看不到 # 2. 为常用指令配置别名,在用户目录,创建 .bashrc 文件 touch ~/.bashrc # .bashrc 文件中可选择如下配置 # 用于输出git提交日志 alias git-log='git log --pretty=oneline --all --graph --abbrev-commit' # 用于输出当前目录所有文件及基本信息 alias ll='ls -al' # 3. 使用 git reset 后,如果想要恢复之前的代码 # 查看所有的 git 已经删除的提交记录,再恢复即可 git reflog # 4. git 分支处理 # 创建分支 git branch dev # 创建并切换到该分支 git checkout -b dev # 删除分支 git branch -d b1 # 删除分支时,需要做各种检查,如果有没有合并的到主分支的代码就会提示 git branch -D b1 # 不做任何检查,强制删除 # 合并分支 git merge 分支名称 # 当前分支地最后一次提交 git branch -v # 新建一个分支并指定其提交对象(也就是哪个commit) git branch dev hash值 # 5. 连接远程仓库 git remote add <远端名称> <仓库路径SSH> # 远端名称默认都为 origin git push -u 是 git push--set-upstream 的缩写 git push -u <远端名称> <分支名称> git remote # 查看远程仓库 git branch -vv # 查看仓库与远程的连接情况 git clone 地址 文件夹名称 # git clone 可以在后面指定文件夹名称 # 6. git fetch 与 git pull # git fetch 抓取,就是相当于把线上的记录在log里卖可以看到 origin/master 最新的 # 但是没有和本地的 master 合并 git pull 拉取相当于 git fetch 、git merge origin/master # 7. git add 与 git commit 合并写法 git commit -a -m "xxx" git commit # 注释比较多的时候可以使用 # 6. git rm # 相当于 删除文件后执行了 git add 添加到暂存里了 git mv # 同理是修改文件名 # 7. git 撤销暂存提交 git reset HEAD 名称 # 8. git 撤销 commit 另外方式,只能最新的注释写错 git commit --amend # 9. git tag # 给某一次提交打上标签 git tag -l 'v1.*' # 列出以 v1.开头的所有 9.1 轻量标签 git tag v1.0 git tag v1.0 提交对象哈希 9.2 附注标签 git tag -a v1.0 git tag -a v1.0 提交对象哈希 git tag -a v1.0 提交对象哈希 -m "我的注释信息" 9.3 查看标签 git show tagname 9.4 删除标签 git tag -d v1.0 9.5 检出标签 git checkout -b tagname # 10. 远程仓库 git remote -v # 显示远程仓库 git branch -u origin/dev # 跟踪一个远程分支 git branch -vv # 查看本地分支与线上分支对应关系 git push origin --delete dev # 删除远程分支 # 注意:git clone 时有其他分支,git branch 没有其他分支,只需要切换即可。 # 11. pull request # pr 之后仓库可以连接多个远程,然后拉取最新的代码 # 如下:git remote add 新名词 地址
git 撤销 merge 的代码 1 2 3 4 5 6 7 8 9 // 1. 使用 revert // 当 master 合并 dev 分支后 git revert -m 1 xxx // 取消合并到之前的 master git revert -m 2 xxx // 取消合并到之前的 dev // 直接 git revert xx 会报错 // 2. 使用 reset // 直接使用 git reset --hard xxx 就可以 // 如果在这个 xxx 之前有其他 dev 的 commit 也会一起重置
git 合并远程分支 1 2 3 4 // 直接本地合并远程分支 git merge remotes/origin/xxx // 或者 master 直接合并远程的 dev git pull origin dev
git 代理 ssh https 克隆失败,改用 https 并且配置代理
1 2 3 4 5 6 7 8 9 10 11 # 验证配置 git config --global --get http.proxy git config --global --get https.proxy # 配置Git使用HTTP代理 git config --global http.proxy 'http://127.0.0.1:7890' git config --global https.proxy 'http://127.0.0.1:7890' # 取消代理 git config --global --unset http.proxy git config --global --unset https.proxy