Git 40个常用命令
# 1. 检测 git 是否安装成功
git --version
# 2. 配置 username, email
git config --global user.name "user"
git config --global user.email "user@qq.com"
# 3. 查看自己的配置
git config --global --list
# 4. 新建仓库 或者 直接使用
git init project cd folder git init
# 5. 克隆远程分支
git clone git@git.xxx.com:php/file.git
# 6. 还原单个文件
git reset 9b7e88b7c2c4ec8a046 app/Services/ClubService.php
# 7. 查看分支的所有操作记录
git reflog
# 8. 回退到指定的版本(不可撤销)
git reset --hard 版本id
# 9. git 替换项目中的文件名 rname 变成 rname.md
git mv rname rname.md
# 10. 查看分支
git branch
git branch -v
git branch -a #查看远程分支
# 11. 切换分支
git checkout master
# 12. 从 master 拉下一个新分支
git checkout master
git pull origin master
git checkout -b new_branch
# 13. 本地添加/删除分支
git branch addUrl
git branch -d addUrl
git branch -D addUrl
# 14. 删除远程分支
git push origin --delete dev
# 15. 使用远程 gold 分支在本地创建 gold (但不会切换到该分支)
git fetch origin gold:gold
# 16. 查看整个版本所有分支的衍生历史最近4个
git log --oneline --all -n4 --graph(分支线)
# 17. 合并多个commit内容
# 1).查看历史记录
git log
# 2).摘取希望合并到的commitid
git rebase -i c6f8d7ac1bc3501050c661cf4b594d790ed9c33a
# 3).第二个pick改为s,输入wq保存退出
# 4).若第3)步有冲突,解决冲突后,执行
git rebase --continue
# 5).修改commit信息,wq保存退出
# 6).再次查看历史记录
git log
# 18. 查看类型/打开类型
git cat-file -t 9b7e88b7c2c4ec8a046 # 查看
git cat-file -p 9b7e88b7c2c4ec8a046 # 打开
# 19. 修改最后一次 commit 内容,并提交
git commit --amend
# 20. 修改指定一次 commit 提交的描述
# 找到Parent的commit码
git rebase -i 9b7e88b7c2c # 产生一个交互
pick 改为 reword
# 21. 工作区修改差异
git diff
# 22. 工作区恢复文件
git checkout . # 所有文件
git checkout -- index.php # 单个文件
# 23. 删除工作区
git rm index.php
# 24. 暂存区与工作区差异
git diff --cached
git diff -- index.php # 单个文件比较
# 25. 取消暂存区的内容
git reset head # 所有文件
git reset -- index.php # 单个文件
git reset -- index.php master.php # 多个文件
# 26. 比较commit 提交的文件
git diff 9b7e88b7c2c4ec8a046 77ee88b7c2c4ec8a046
# 27. 合并解决冲突
# 1). 查看当前文件状态
git status
# 2). phpstrom编辑器:vcs->git->resolve confilcts
# 查看冲突文件,本地分支与目标分支对比,查看差异化文件,合并处理
# 3). 再次查看文件状态
git status
# 4). 无冲突文件后执行
git merge --continue
# 28. 提交代码
# 1). 添加文件到暂存区
git add .git add 文件
# 2). 提交到本地仓库
git commit -m "提交功能"
git --amend "最后一次提交做修正"
# 3). 推送到远程仓库
git push origin 分支名
# 29. 分支合并
# 1).切换目标分支
git checkout 分支名
# 2).更新分支源文件
git pull origin 分支名
# 3).注意查看冲突文件
git merge 需合并的分支名
# 4).查看文件状态,是否有冲突
git status
# 5).推送本地合并
git push origin 分支名
# 6).查看分支合并记录
gitk 或 git log
# 30. 危险命令 撤回版本(不保留修改)
# 1).查看分支记录
gitk
# 2). 退回某一次提交 SHA1 ID
git reset --hard 9b7e88b7c2c4ec8a046
# 31. 危险命令 撤回版本(保留修改的内容)
git reset 9b7e88b7c2c4ec8a046
# 32. 保存栈
git stash git stash save "文本" #添加文本
git stash list #查看列表
git stash apply #重复使用
git stash apply stash@{1} git stash pop #一次使用
git stash pop stash@{1} git stash drop stash@{1} #删除
git stash drop clear #删除所有
# 33. 落后分支解决
# 方法一:
# 1).切到master分支
git checkout master
# 2).master分支拉到最新
git pull origin master
# 3).切回落后分支
git checkout report_debug
# 4).rebase master
git rebase master
# 5).提交,需要强推.
git push origin report_debug -f
# 方法二:
# 1).新建版本分支
git checkout -b fix_action
# 2).摘取某一个记录
git cherry-pick bbe3a03a385af25ab4e8d8177060f86a80e1eb7f
# 3).提交记录
git push origin fix_action
# 34. 将上面的commit id为0771a0c107dbf4c的提交添加到B分支上面
git checkout B git cherry-pick 0771a0c107dbf4c #发生冲突
# 继续操作
git add . # 将文件标记为已解决
git cherry-pick --continue # 继续进行cherry-pick操作
# 取消本次cherry-pick操作
git cherry-pick --abort # 取消这次cherry-pick
# 35. Git pull 强制拉取master并覆盖本地代码
git fetch --all
git reset --hard origin/master
git pull origin master
# 36. 远程分支落后本地分支
# 1). 删除远程分支
git branch -D preview
# 2). 重新拉取分支
git fetch origin preview:preview
# 37. git – rebase不能提交和停止解决方法
git status
# rebase in progress; onto 9c168a5 You are currently rebasing branch 'master' on '9c168a5'. (all conflicts fixed: run "git rebase --continue") nothing to commit, working directory clean
git branch
# (no branch, rebasing master) develop master
# 解决方案:git rebase --skip
# 38. idea 目录加入.gitignore无效的解决方法
git rm -r --cached .idea #文件夹
git rm --cached data_center.iml #文件
# 39. 在PATH处输入要忽略的文件
git update-index --assume-unchanged PATH
# 40. 指定远程仓库
git remote set-url origin