常用的一些git命令与讲解,看看你还有哪些不知道

Git 是一个分布式的版本控制系统,用作 Linux 内核代码的管理,Git 同样可以作为部署工具所使用。GitHub 的独特在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。Git 也是我们较常用的版本控制服务。

下面是常用的一些 git 命令

  • 进行 git 初始化建立
    在本地新建一个 repo,进入一个项目目录,执行 git init,会初始化一个 repo,并在当前文件夹下创建一个.git 文件夹.
git init
  • 获取一个 url 对应的远程 Git repo, 创建一个 local copy.一般的格式是 git clone [url].clone 下来的 repo 会以 url 最后一个斜线后面的名称命名,创建一个文件夹,如果想要指定特定的名称,可以 git clone [url] newname 指定.
git clone
  • 查询 repo 的状态.
git status
git status -s

-s表示short, -s的输出标记会有两列,第一列是对staging区域而言,第二列是对working目录而言.

  • show commit history of a branch.
git log –oneline –number // 每条log只显示一行,显示number条.
git log –oneline –graph // 可以图形化地表示出分支合并历史.
git log branchname // 可以显示特定分支的log.
git log –oneline branch1 ^branch2 // 可以查看在分支1,却不在分支2中的提交.^表示排除这个分支(Window下可能要给^branch2加上引号).
git log –decorate // 会显示出tag信息.
git log –author=[author name] // 可以指定作者的提交历史.
git log –since –before –until –after // 根据提交时间筛选log.
git log –grep // 根据commit信息过滤log: git log –grep=keywords
  • 在提交之前,Git 有一个暂存区(staging area),可以放入新添加的文件或者加入新的改动. commit 时提交的改动是上一次加入到 staging area 中的改动,而不是我们 disk 上的改动.git add 会递归地添加当前工作目录中的所有文件.
git add
  • 比较工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容
git diff
  • 若要看已经暂存起来的文件和上次提交时的快照之间的差异,可以用:
git diff -cached
  • 可以用来比较两个分支.
git diff [branchA] [branchB]
  • 提交已经被 add 进来的改动.
git commit -m ' '
  • 先把所有已经 track 的文件的改动 add 进来,然后提交
git commit -a
  • 增补提交. 会使用与当前提交节点相同的父节点进行一次新的提交,旧的提交将会被取消
git commit –amend
  • 讲代码回归到当前分支最末梢最新的一个提交版本
git reset HEAD: unstage files from index and reset pointer to HEAD
  • 可以单独针对某一个文件操作
git reset HEAD –– filename
  • 撤销最近的一个提交
git revert HEAD
  • 从 staging 区移除文件,同时也移除出工作目录
git rm file
  • 从 staging 区移除文件,但留在工作目录中
git rm –cached
  • 是从工作目录中移除没有 track 的文件
git clean -df

-d表示同时移除目录,-f表示force,因为在git的配置文件中, clean.requireForce=true,如果不加-f,clean将会拒绝执行.

  • 把当前的改动压入一个栈
git stash
  • 显示这个栈的 list
git stash list
  • 取出 stash 中的上一个项目(stash@{0}),并且应用于当前的工作目录
git stash apply
  • 也可以指定别的项目
git stash apply stash@{1}
  • 如果你在应用 stash 中项目的同时想要删除它,可以用
git stash pop
  • 删除所有项目
git stash clear
  • 列出本地所有分支,当前分支会被星号标示出
git branch
  • 创建一个新的分支
git branch (branchname)
  • 删除一个分支.
git branch -d (branchname)
  • 切换到一个分支
git checkout (branchname)
  • 创建并切换到新的分支
git checkout -b (branchname)
  • 把一个分支 merge 进当前的分支
git merge [alias]/[branch]

如果出现冲突,需要手动修改,可以用git mergetool. 解决冲突的时候可以用到git diff,解决完之后用git add添加,即表示冲突已经被resolved.

  • 基于当前节点创建 tag
git tag v1.0
  • 列出所有远程分支
git remote
  • 添加一个新的 remote repo.
git remote add [alias] [url]
  • 删除一个存在的 remote alias
git remote rm [alias]
  • 重命名分支别名
git remote rename [old-alias] [new-alias]
  • 更新远程的 url
git remote set-url [alias] [url]
  • 获取本地未有的分支与提交节点
git fetch
  • 拉去远程内容
git pull
  • 提交内容至远端
git push
  • 14
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值