个人git常用命令

95 阅读4分钟

git branch 分支相关

git branch // 列出当前remote所有本地分支

git branch -a // 列出当前remote所有分支(本地和远端)

git branch -r // 列出当前remote所有分支(远端)

git branch -D // 删除本地分支

git branch --set-upstream-to {本地分支名} {远端仓库/分支名} // 本地分支关联远端(远端分支需存在)

git branch -vv // 查看分支关联信息

git push 推送相关

git push --set-upstream {仓库名} {远端分支名(新建)} // 本地关联远端分支(可新建分支)

git push{仓库名} {本地分支}:{远端分支(新建)} git push origin a:a

git push {仓库名}--delete {远端分支名} // 删除远端分支

git push {仓库名}:{远端分支名} // 推送空仓库也可以删除远端分支

git push -f // 强制推送(本地commit树覆盖远端若本地版本落后远端或与远端有冲突会把远端覆盖)

git pull 拉取合并

git pull --force // 拉取强制覆盖(-f)

git pull {remote name} 拉取指定remote(远端仓库)代码 (当前分支merge别的remote分支代码先拉取 否则读取不到另外remote上次拉取后的提交)

git fetch 拉取

git checkout 分支切换

git checkout 分支名称 // 切换分支

git checkout -b 分支名称 // 切换并新建分支

git checkout -b 新分支名称 分支名称 // 以指定分支创建新分支

git checkout -- 文件名 // 还原文件到仓库版本(丢弃本地修改)

git checkout 分支名 -- 文件名 // 将当前分支文件修改为选择分支的版本

切换分支需先处理本地已修改代码 commit(可以不push) 或stash暂存

git cherry-pick

git cherry-pick 或 .. // 合并指定commit到当前分支

git cherry-pick /分支名 // 将指定的提交(commit)应用于其他分支。(在当前分支执行将其他分支提交拉过来当作commit提交)提交多个

git restore

git restore [path] 或 . // 使在工作空间但是不在暂存区的文件撤销更改(内容恢复到没修改之前的状态)

git diff 比对操作

git diff branch1 branch2 --stat // 显示出branch1和branch2中差异的部分

git diff branch1 branch2 具体文件路径 // 显示指定文件的详细差异

git diff branch1 branch2 // 显示出所有有差异的文件的详细差异

git log 提交记录(包含未push)

git log branch1..branch2 // 查看branch2中比branch1中多提交了哪些内容

git log branch1...branch2 // 不知道谁提交的多谁提交的少,单纯想知道有什么不一样

git log -lefg-right branch1...branch2 // 在上述情况下,在显示出每个提交是在哪个分支上(注意 commit 后面的箭头,根据我们在 –left-right branch1…branch2 的顺序,左箭头 < 表示是 branch1 的,右箭头 > 表示是branch2的。)

git add

git add . # 将所有修改添加到暂存区$ <path路径需完整路径>

git add * # Ant风格添加修改

git add *Controller # 将以Controller结尾的文件的所有修改添加到暂存区

git add Hello* # 将所有以Hello开头的文件的修改添加到暂存区 例如:HelloWorld.txt,Hello.java,HelloGit.txt ...

git add Hello? # 将以Hello开头后面只有一位的文件的修改提交到暂存区 例如:Hello1.txt,HelloA.java 如果是HelloGit.txt或者Hello.java是不会被添加的

git reset

git reset HEAD // 回退仓库版本(本地)重新推送后可覆盖远端

git rebase

git rebase // 拉代码(冲突合并)

git rebase --abort // 有冲突代码时会先是rebaseing状态处理冲突 此命令可取消rebase操作回到rebase命令之前状态

git merge

git merge // 合并指定分支

git merge --abort // 有冲突代码时会先是mergeing状态处理冲突 此命令可取消merge操作回到merge命令之前状态

git status

git status // 列出变动

git commit

git commit -a -m {提交名称} // 提交所有更改

git stash 暂存

git stash // 暂存本地修改 git stash save 别名 git stash pop //还原第一个stash 并删除 git stash drop 别名或序号 //删除 git stash list // 列出stash列表 git stash apply stash@{id} // 还原指定stash

git remote 远端存储库

git remote show {仓库名} // 仓库信息(地址、关联信息、commit版本等) git remote -v // 列出remote 地址(fetch/push) git remote add {别名(本地仓库名)} {仓库地址} git remote rm {别名} git remote rename {old_name} {new_name} // 修改仓库名 git remote set-url {别名} {远端地址}// 修改本地仓库关联远端地址 git remote // 列出所有remote git remote prune {remote name} // 同步远端分支(远端分支已删除 本地查看依然还在)