Git&Repo基本命令整理

一、git基本命令

​ git命令的构成:git 子命令 --选项

​ git help 子命令--------来查看子命令的帮助

1、init

git init

​ 初始化git,在当前目录新建一个仓库

git init [project-name]

​ 在一个目录下新建本地仓库

2、add

git add filename

​ 从工作区添加指定文件到暂存区

git add .

​ 将工作区的被修改的文件和新增的文件提交到暂存区,不包括被删除的文件

git add -u .

​ u指update,将工作区的被修改的文件和被删除的文件提交到暂存区,不包括新增的文件

git add -A .

​ A指all,将工作区被修改、被删除、新增的文件都提交到暂存区

3、ls-files

git ls-files

​ 查看缓存区的文件

–cached(-c)

​ 显示暂存区中的文件,git ls-files命令默认的参数
–deleted(-d)

​ 显示删除的文件
–modified(-m)

​ 显示修改过的文件
–other(-o)

​ 显示没有被git跟踪的文件
–stage(-s)

​ 显示mode以及文件对应的Blob对象,进而我们可以获取暂存区中对应文件里面的内容。

4、commit

git commit -m [massage]

​ 将暂存区所有文件添加到本地仓库

git commit [file-name-1] [file-name-2] -m [massage]

​ 将暂存区指定文件添加到本地仓库

git commit -am [massage]

​ 将工作区的内容直接加入本地仓库

git commit --amend

​ 快速将当前文件修改合并到最新的commit,不会产生新的commit。

加-m是指直接在后面写上版本的注释,不加-m的话会用一个vim打开文件让你写入massage,有未追踪的文件将会失败,需要add加入暂存区。

5、status

git status [file-name]

​ 查看指定文件状态

git status

​ 查看所有文件状态

6、log

git log
显示所有commit日志

git log --graph

​ 显示图形表示的分支合并历史

git log --since=2.weeks

​ 列出所有最近两周内的提交

git log --pretty=oneline

​ 将日志缩写为单行显示

git log --graph --pretty=oneline --abbrev-commit

​ 查看分支合并情况

git log --oneline --decorate --graph --all

​ 查看分叉历史,包括:提交历史、各个分支的指向以及项目的分支分叉情况。

git log -3

​ 查看最新3条commit日志数据

7、rm

git rm

​ 从暂存区域移除,并连带从工作目录中删除指定的文件

git rm -f

​ 若删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项-f

8、checkout

git checkout -- <file>

​ 取消对文件的修改,把之前版本的文件复制过来重写此文件

git checkout [branch]

​ 切换分支

git checkout -b [new-branch-name]

​ 创建并切换分支

9、branch

git branch [branch-name] 创建分支

git branch 查看当前分支

git branch -a 查看本地和远程的所有分支

git branch -r查看远程所有分支

git branch -d [branch-name] 删除一个分支

git branch -D [branch-name] 强制删除一个没有合并的分支

git branch --set-upstream-to=origin/[branch-name] [branch-name] 把本地分支和远程分支进行连接

10、patch
git format-patch

git format-patch HEAD^    #生成最近的1次commit的patch

git format-patch HEAD^^   #生成最近的2次commit的patch

git format-patch HEAD^^^  #生成最近的3次commit的patch

git format-patch HEAD^^^^  #生成最近的4次commit的patch

git format-patch …                   #生成两个commit间的修改的patch(包含两个commit. 和都是具体的commit号)

git format-patch -1                 #生成单个commit的patch

git format-patch 					#生成某commit以来的修改patch(不包含该commit)

git format-patch --root   #生成从根到r1提交的所有patch
11、clean

git clean

​ 删除未暂存的文件

git clean -df

​ 加-d是指包含目录,加-f是指强制,删除所有未跟踪的文件

12、reset

git reset HEAD <file>

​ 取消已经暂存的文件

当对整个版本进行操作

git reset --{soft|(mixed)|hard} HEAD

​ --soft 其中可选参数soft表示单纯的切换HEAD指向的commit-id

​ --mixed 默认值mixed参数表示先执行上面一步,然后再将commit-id里面的内容更新到暂存区

​ --hard hard表示先执行上面两步,然后再将暂存区内容同步到工作区

git reset --hard HEAD^^

​ 用上两个版本里的所有文件撤回到暂工作区

git reset --hard [commit id]

​ 用指定版本的所有文件撤回到工作区

当对当个文件进行操作

git reset HEAD [file-name]

​ 对单个文件操作时候只能用mixed参数,而且还是可省略
​ 对单个文件操作时候HEAD指向不会变
​ 将commit中指定的文件同步到暂存区中

git reset [commit-id] [file-name]

​ 将指定commit-id中的文件替换掉暂存区的文件

13、revert

git revert -n [commit-id]

git revert -n HEAD^^

14、mv

git mv 文件移动

相当于:

$mv file.txt newFile

$git rm file.txt

$git add newFile
15、show

git show
​ 查看文件的变更情况。

git show commitID

​ 查看某一次commit的内容

16、diff

git diff

​ 查看尚未暂存的文件更新了哪些部分

git diff --cached

​ 看已经暂存起来的文件和上次提交时的快照之间的差异

git diff SHA1..SHA2

​ 查看两次提交之间的区别

git diff HEAD -- . 查看最新本地版本库和工作区所有文件的区别

git diff HEAD -- [file-name] 查看最新本地版本库和工作区文件的却别

git diff HEAD^ -- [file-name] 查看本地上一个版本和工作区文件的却别

git diff [local branch] origin/[remote branch] 比较本地分支和远程分支的区别

17、merge

git merge<other-branch>

​ 将other-branch分支merge到当前分支

git rebase<other-branch>

​ 将other-branch分支rebase到当前分支

git cherry-pick<commit-id>

​ 将某个提交拿到当前分支中

18、stash

git stash

​ 暂存起来未提交的修改。 隐藏当前工作的修改,如果不隐藏自己修改的半成品代码,就会发生切换到别的分支后,将然后自己的半成品代码带入其他分支,这样就发生很多不必要的麻烦。

git stash save message

​ 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。

git stash list

​ 查看隐藏的工作信息列表

git stash drop

​ 删除隐藏的工作信息

git stash pop

​ 恢复隐藏的工作信息,同时删除隐藏的工作信息

git stash apply [stash@{0}]

​ 恢复指定的隐藏工作信息,但是不会删除隐藏的工作信息

19、remote

git remote show [remote-name]

​ 查看远程仓库信息

git ls-remote [remote-name]

​ 查看远程仓库中各分支最新更新

git remote add <name> <远程仓库URL>

​ 关联远程仓库

git remote rm <name>

​ 远程仓库的删除

git remote rename <old> <new>

远程仓库的重命名

20、fetch

git fetch

​ 拉取远程分支最新的commit到本地仓库的origin/[branch-name]

21、pull

git pull

​ 从远程仓库拉取代码到工作空间

pull 和 fetch的关系

git pull == git fetch + git merge

22、rebase

git rebase -i commitId

img

二、repo

1、使用repo的标准工作流程

用repo下载练习git库

repo init -u amazon@code.thunderst.com:amazon/manifest.git

repo sync

用repo start命令将所有git库切换到正确的分支上

repo start Amazon <project|--all>

进入文件目录

cd your_project_dir

进行编辑后查看当前文件状态

git status

暂存文件

git add <changed file1><changed file2>

再次查看文件状态

git status

提交到仓库

git commit

向gerrit提交本地的修改

repo upload
2、repo常用命令
repo status

​ 查看整个worktree的状态

repo branches

​ 查看本地worktree上的工作分支情况

repo abandon <branch_name> {<git库名>|--all}

​ 删除指定分支(可以是特定git库,也可以是全体),可视为repo start的逆操作

repo upload[<project>...][--replace]
向gerrit提交本地的修改

三、git拉取远程代码

克隆代码:git clone “URL”

查看分支:git branch -a

切换分支:git checkout 远程分支名

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值