Git和Repo常用命令介绍

Git

Git基本工作流程

  1. 在工作目录中修改某些文件
  2. 对这些修改了的文件作快照,并保存到暂存区域
  3. 提交更新,将保存在暂存区域的文件快照转储到git目录中

开始使用Git

一个典型git命令的构成:git 子命令 --选项
  • git init
  • git add
  • git status
  • git commit
  • git help

可以使用“git help 子命令”来查看子命令的帮助

Git常用命令

  • git clone
  • git pull
    与git clone不同,git pull可以从任意一个git库获取某个分支的内容。
    用法:git pull username@ipaddr:远端repository名 远端分支名:本地分支名
    这条命令将从远端git库的远端分支名获取到本地git库的一个本地分支中。其中,如果不写本地分支名,则默认pull到本地当前分支。

需要注意的是,git pull也可以用来合并分支。和git merge的作用相同。因此,如果你的本地分支已经有内容,则git pull会合并这些文件,如果有冲突会报警。

  • git fetch [remote-name]

从远程仓库抓取数据到本地

git fetch origin会抓取从你上次克隆以来别人上传到此远程仓库中的所有更新(或是上次fetch以来别人提交的更新)。
有一点很重要,fetch命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手动合并。
如果设置了某个分支用于跟踪某个远程仓库的分支,可以使用git pull 命令自动抓取数据下来,然后将远端分支自动合并到
本地仓库中当前分支。
实际上,默认情况下 git clone 命令本质上就是自动创建了本地的 master 分支用于跟踪远程仓库中的 master 分支(假设远程仓库中确实有 master 分支)。所以我们一般运行 git pull ,目的都是要从原始克隆的远端仓库中抓取数据后,合并到工作目录中当前分支。

  • git init
    初始化git
  • git add
    三种用途:
    1. 可以用它开始跟踪新文件
    2. 或者把已跟踪的文件放到暂存区
    3. 还能用于合并时把有冲突的文件标记为已解决状态等
  • git rm
    从暂存区域移除,并连带从工作目录中删除指定的文件
  • git rm -f
    如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f
  • git status
    检查当前文件状态
  • git mv
    Git并不跟踪文件移动的操作,如果在Git中重命名了某个文件,仓库中存储的元数据并不会体现出这是一次改名操作,不过Git非常聪明,它会推断究竟发生了什么。
  • git reset HEAD < file >…
    取消已经暂存的文件
  • git checkout – < file >…
    取消对文件的修改,把之前版本的文件复制过来重写此文件
  • git clean
    删除未暂存的文件

任何已经提交到Git的都可以被恢复,所以,你可能失去的数据,仅限于没有提交过的,对Git来说他们就像从未存在过一样。

  • git commit
    提交修改
    注意:必须按照要求的格式认真填写提交日志!
  • git commit --amend
    修改最后一次提交,有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了,此命令将使用当前的暂存区域快照提交。
  • git diff
    查看尚未暂存的文件更新了哪些部分(和暂存区中)
  • git diff --cached
    看已经暂存起来的文件和上次提交时的快照之间的差异
  • git diff SHA1…SHA2
    查看两次提交之间的区别

单单 git diff 不过是显示还没有暂存起来的改动,而不是这次工作和上次提交之间的差异

  • git log
    查看修改历史信息
  • git log --graph
    显示图形表示的分支合并历史
  • git log --since=2.weeks
    列出所有最近两周内的提交
  • git branch
    创建和删除及给出当前所有分支的清单
  • git branch [-d | -D]
    删除分支
  • git checkout [branch] [-b new_branch]
    切换到指定分支,切换分支时,当前工作目录必须是干净的状态

一些合并代码的git命令

  • git merge < other-branch >
    将other-branch分支merge到当前分支
  • git rebase < other-branch >
    将other-branch分支rebase到当前分支
  • git cherry-pick < commit-id >
    将某个提交拿到当前分支中

一些关于远程库的git命令

  • git remote show [remote-name]
    查看远程仓库信息
  • git ls-remote [remote-name]
    查看远程仓库中各分支最新更新
  • git remote add < name > <远程仓库URL>
    增加远程仓库
  • git remote rm < name >
    删除远程仓库
  • git remote rename < old > < new >
    远程仓库的删除和重命名
    注意:对远程仓库的重命名,也会使对应的分支名称发生变化

Repo

使用Repo的标准工作流程

  • repo init -u amazon@code.thunderst.com:amazon/manifest.git -b amazon
  • repo sync
  • repo start Amazon <project | --all>
  • cd your_project_dir
  • git status
  • git commit
  • repo upload .

repo常用命令

  • repo status
    查看整个worktree的状态:是否clean,哪些库有什么样的变动等
  • repo branches
    查看本地worktree上的工作分支情况
  • repo abandon < branch_name > {<git库名> | --all}
    删除指定分支(可以是特定git库,也可以是全体),可视为repo start 的逆操作
  • repo upload [< project >…] | [–replace < project >]
    向gerrit提交本地的修改
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值