Git 40个常用命令

Git/版本控制
204
0
0
2023-08-29
标签   Git基础

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