git快速入门——常用命令行

git快速入门

git工作流程

git配置

$ git config --global user.name “Your Name”
$ git config --global user.email “email@example.com”

常用命令行

  1. git init:把当前目录变成Git可以管理的仓库

  2. git add:把文件添加到暂存区
    注:
    git add . 添加当前目录下的所有文件到暂存区

  3. git commit:把暂存区内容提交到当前分支

    git commit -m "add a new file"
    
  4. git status:查看工作目录状态

  5. git diff:查看文件差异

    git diff比较的是工作目录中当前文件和暂存区域快照之间的差异, 也就是修改之后还没有暂存起来的变化内容。若要查看已暂存的将要添加到下次提交里的内容,可以用 git diff --cached 命令。

    请注意,git diff 本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动。 所以有时候你一下子暂存了所有更新过的文件后,运行 git diff 后却什么也没有,就是这个原因。

    git diff HEAD -- filename:工作区和库(HEAD)之间差异

    git add的反向命令git checkout
    git commit的反向命令git reset HEAD

  6. git log:查看commit记录
    注:

    • 记录中HEAD表示当前版本
    • 如果要表示上一个版本,可以使用HEAD^。同理上上一个版本,可以使用HEAD^^表示。
    • 如果要表示往上10个版本,10个^不但不方便书写,也不方便查看。往上10个版本,可以使用HEAD~10表示。
    • git log --pretty=oneline 查看简要信息
    • git log --graph --pretty=oneline --abbrev-commit 以简要信息的形式查看分支合并图
  7. git reflog:查看包含git reset回退到某一版本的记录,可用于查看回退版本之前的commit id。

  8. git reset --hard <>:回到某一版本

    git reset --hard HEAD^    # 回退上一版本
    
    git reset --hard <commit id>    # 回退到某一指定版本
    

    注:慎用--hard,会丢失之前的修改内容。不清楚的情况下建议不带--hard参数,即:git reset <commit id>

  9. git checkout -- file:让这个文件回到最近一次git commit或git add时的状态。主要用来丢弃暂未使用git add添加到暂存区的修改。
    注:新版本使用git restore代替

  10. git reset HEAD file:撤销暂存区的修改,与HEAD保持一致。主要用来回退已经使用git add添加到暂存区的修改,将回退到git add之前的状态。
    注:新版本使用git restore --staged代替

  11. git remote add:添加远程库。适用于先有本地库,后有远程库。
    例:
    git remote add origin git@server-name:path/repo-name.git
    origin:关联远程库时给远程库所指定的名字,origin默认习惯命名。

  12. git remote -v:查看远程库信息

  13. git remote rm:删除远程库
    例:git remote rm origin

  14. git clone:从远程库克隆。适用于先有远程库。

  15. git clone -b branchA url:从远程库克隆后默认切换到branchA分支。

  16. git clone -b branchA --single-branch url:从远程库克隆只克隆branchA分支。

  17. git branch dev:创建dev分支

  18. git branch:查看当前存在哪些分支

  19. git switch -c dev:创建dev分支,并切换到dev分支。
    注:

    • git switch命令加上-c参数表示创建并切换。上述命令相当于下面两条命令。

      git branch dev 创建dev分支
      git switch dev 切换到dev分支

    • 旧版本使用 git checkout -b dev 表示创建dev分支,并切换到dev分支。
    • 旧版本使用 git checkout dev 表示切换到dev分支。
  20. git merge:合并指定分支到当前分支。

  21. git branch -d:删除指定分支

  22. git stash:把当前工作现场“储藏”起来,等以后恢复现场后继续工作

  23. git stash list:查看被“储藏”的工作现场

  24. git stash apply:恢复现场,但是stash内容不删除

  25. git stash drop:删除stash内容

  26. git stash pop:恢复现场,并删除stash内容
    注:
    可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash

  27. git push:推送分支
    例:
    git push origin master
    git push -u origin master
    git push --delete origin [branch name] # 本地分支删除之后,同步删除远程仓库对应分支
    注:
    第一次推送master分支时,加上-u参数,Git不但会把本地的master分支内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

  28. git branch --set-upstream-to=origin/dev dev:指定本地dev分支与远程origin/dev分支的链接

  29. git pull:抓取分支

  30. git rebase:把本地未push的分叉提交历史整理成直线

  31. git tag <tagname>:打一个新的标签。默认标签是打在最新提交的commit上。

  32. git tag <name> <commit id>:打一个新的标签。指定某一commit。

  33. git tag -a <tagname> -m “massage” <commit id>:创建带有说明的标签。-a指定标签名,-m指定说明信息。

  34. git tag:查看所有标签。

  35. git show <tagname>:查看标签信息

  36. git tag -d <tagname>:删除本地某一标签

  37. git push origin <tagname>:推送某一标签到远程

  38. git push origin --tags:推送全部尚未推送到远程的本地标签

  39. git push origin :refs/tags/<tagname>:删除一个远程标签

  40. 忽略某些文件时,需要编写.gitignore。参考https://github.com/github/gitignore

  41. .gitignore文件本身要放到版本库里

  42. 把指定文件排除在.gitignore规则外的写法就是!+文件名。例:!.gitignore

  43. git check-ignore -v <file>:检查指定文件匹配到哪一个忽略规则。

  44. 配置别名。例:git config --global alias.ci commit

  45. git cherry-pick <commit id>:类似merge,区别在于该命令只将其他分支某一次提交合并到当前分支。

  46. git config --global core.editor vim:修改git默认编辑器为vim

参考文章:
https://www.liaoxuefeng.com/wiki/896043488029600
https://blog.csdn.net/u011535541/article/details/83379151

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值