git常用命令

1、Git的一些概念
v2-9ef4fd60f013c9c897b79577a16264c3_1440w

工作区 (Workspace):写代码的地方,在编辑器(vscode)写的每一行代码都是在工作区进行的
暂存区 (Index/Stage):对工作区的代码进行暂存并等待提交,进入了暂存区才会真正进入版本控制阶段(.git/index 中保存了从工作区暂存的更改)
本地仓库 (Repository):提交后的代码在本地仓库中进行版本控制
远程仓库 (Remote):云端仓库,一般存在Github上

2、Git常见分支命名

分支 说明
main/master 主分支。正式版本,最稳定的
dev 开发分支。功能最新最全的分支,在此分支上修复 bug
feat-* 新功能分支。某个功能正在开发阶段,在此分支上写 bug
release-* 发布定期要上线的功能
bug-*/issue-* 修复线上代码的 bug

3、Git常用命令总结

# 创建版本库
git clone <url>        # 克隆远程版本库
git init               # 初始化本地版本库
git config --global user.name "user"  # 设置用户名
git config --global user.email "user@163.com"  # 设置邮箱,邮箱地址必需为真实的邮箱地址
git config --list      # 查看配置

# 修改和提交
git status [-s]                  # -s(可选)表示简短的输出结果
git diff                         # 查看变更内容
git add <file>                   # 跟踪指定的文件
git add .                        # 跟踪所有改动过的文件
git commit -m "message"          # 提交所有更新过的文件
git commit -a -m "message"       # 暂存所有文件并提交
git commit --amend               # 修改最近一次提交(前提是还未推送)
git mv <old> <new>               # 文件改名
git rm <file>                    # 删除文件
git rm --cached <file>           # 停止跟踪文件但不删除

# 查看提交历史
git log                         # 查看提交日志
git log --oneline               # --online参数只输出提交id(哈希 SHA1值)和提交信息
git log --stat                  # 显示哪些文件进行了修改
git log --author="<username>"   # 获取指定用户的提交日志
git log -p <file>               # 查看指定文件的提交日志
git blame <file>                # 以列表方式查看指定文件的提交日志
git rebase -i HEAD~[n]          # n为要合并的记录条数,将要合并的最新一个Commit的操作保留为pick。将后续几个要合并的Commit的操作改为s。保存文件并退出
git reflog                      # 查看操作历史(找到丢失的commit)
git reset --hard commit_hash    # 回到任意时间点

# 撤消
git reset --hard HEAD           # 撤消工作目录中所有未提交文件的修改内容
get checkout HEAD <file>        # 撤消指定的未提交文件的修改内容
git revert <commit>             # 撤消指定的提交

# 分支与标签
git branch                      # 显示所有本地分支
git checkout <branch/tag>       # 切换到指定分支或标签
git checkout -b <branch_name>   # 新建并切换至新分支
git branch <new-branch>         # 创建新分支
git branch -d <branch>          # 删除本地分支
git branch recovered-branch commit_hash     # 找回被删除的分支
git branch -m old_branch new_branch         # 重命名分支
git branch -M old_branch new_branch         # 强制重命名一个分支,即使目标分支名称已经存在
git tag                         # 列出所有本地标签
git tag <tagname>               # 基于最新提交创建标签
git tag -d <tagname>            # 删除标签

# 合并与衍合
git merge <branch>              # 合并指定分支到当前分支
git rebase <branch>             # 衍合指定分支到当前分支

# 远程操作
git remote -v                              # 查看远程版本库信息
git remote show <remote>                   # 查看指定远程版本库信息
git remote add <remote_name> <url>         # 添加远程版本库
git remote remove/rm <remote_name>         # 删除一个远程引用(例如远程名为origin)
git fetch <remote_name>                    # 从远程库获取代码
git pull <remote_name> <branch>            # 下载代码及快速合并
git pull --rebase origin main              # 从远程main分支获取更新并将当前工作分支的提交“变基”到远程提交之上。这样可以让本地提交记录线性,避免额外的合并提交
git push <remote_name> <branch> -f         # 上传代码及快速合并,-f:强制推送,第一次提交需要加-u选项,git push -u origin feature
git push <remote_name> --delete <branch>   # 删除远程分支
git push origin :feature                   # 删除名为feature的远程分支(冒号前为空表示删除)
git push --set-upstream origin new_branch  # 推送新分支到远程仓库
git push --tags                            # 上传所有标签

3、git别名配置(~/.gitconfig)

[alias]
    co = checkout
    br = branch
    ci = commit
    st = status
    lol = log --oneline --graph --decorate
    fixup = commit --fixup
    ri = rebase -i

参考链接:
      https://liaoxuefeng.com/books/git/branch/rebase/index.html         # Git教程
      https://developer.aliyun.com/article/1511081                                 # git rebase合并当前分支的多个commit记录
      https://git-scm.com/book/zh/v2                                                      # git官方文档

posted @ 2019-11-12 22:17  風£飛  阅读(189)  评论(0)    收藏  举报