git是我们最常用的代码仓库管理工具,repo 是一款批量管理git的工具。

1、repo安装

确保主目录下有一个 bin/ 目录,并且该目录包含在路径中:

$ mkdir ~/bin

$ PATH=~/bin:$PATH

下载 repo 工具,并确保它可执行:

$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

$ chmod a+x ~/bin/repo

2、多个版本管理工具

3、SVN与Git对比

4、repo常用命令

repo init -u URL -b ........ # 创建.repo

repo upload # 将代码提交到gerrit.

repo abandon master # 放弃master分支

repo forall -c "git reset --hard HEAD" # 所有代码执行git命令,回退到HEAD

# repo sync相当于git clone会把repository中的所有内容拷贝到本地,非首次运行repo sync相当于更新和合并.

# repo sync会更新.repo下面的文件,如果在merge的过程中出现冲突,这需要手动运行git rebase --continue.

repo sync -c -j 4

repo start master --all # 创建新分支

5、git-svn常用命令

# 下载一个 SVN 项目和它的整个代码历史,并初始化为 Git 代码库

$ git svn clone -s [repository]

# 查看当前版本库情况

$ git svn info

# 取回远程仓库所有分支的变化

$ git svn fetch

# 取回远程仓库当前分支的变化,并与本地分支变基合并

$ git svn rebase

# 上传当前分支的本地仓库到远程仓库

$ git svn dcommit

# 拉取新分支,并提交到远程仓库

$ svn copy [remote_branch] [new_remote_branch] -m [message]

# 创建远程分支对应的本地分支

$ git checkout -b [local_branch] [remote_branch]

6、git常用命令

git log # 查看当前库的git log信息

git log -p -2 # -2 来仅显示最近两次提交

git show # 的命令显示当前HEAD上的最近一次的提交(commit)

git log -n1 -p # 同上

git status ./ # 查看当前库的状态

git reset HEAD~1 # 将当前库恢复到HEAD的上一个版本

git diff ./ # 比较当前库的修改情况

git add ./ # 将当前库的代码修改提交到暂存区

git commit ./ # 将代码提交到本地分支

git commit --file ../commit_log.txt # 指定messege文件

git commit --amend ./ # 追加修改

# git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤

# 如果你的提交信息(commit message)写错了且这次提交(commit)还没有推(push), 你可以通过下面的方法来修改提交信息(commit message)

git commit --amend --only -m 'xxxxxxx'

# 想从一个提交(commit)里移除一个文件

git checkout HEAD^ myfile

git add -A

git commit --amend

# 删除我的的最后一次提交(commit)

git reset HEAD^ --hard

git push -f [remote] [branch]

cd git_work # 找一个干净目录,假设是git_work

git clone http://myrepo.xxx.com/project/.git # 这样在git_work目录下得到一个project子目录

cd project

git branch -a # 列出所有分支名称如下:

remotes/origin/dev

remotes/origin/release

git checkout -b dev22 remotes/origin/release #是checkout远程release分支,在本地起名为dev22分支,并切换到本地的dev22分支

git checkout -b dev11 remotes/origin/dev # 作用参见上一步解释

git checkout dev22 #切换回release分支,并开始开发。

git pull # 更新本地仓库及本地暂存区及工作目录

git commit --author 'Freyll<hell@github.com>' --file ../commit_log.txt

git commit --amend --author 'Freyll<hell@github.com>' --file ../commit_log.txt

# commit_log.txt中添加Change-Id:Id89afdd8cb

git push origin HEAD:refs/dev22/master # 提交代码到远程分支

git branch -d dev22 # 删除本地分支dev22

git config -l # 参看配置信息

git show HEAD^ # 查看HEAD的上一个版本信息

git show HEAD~4 # 查看HEAD的上溯4代的信息

git reset --hard HEAD^^ # 回退两个版本

git reset --hard 8308f03 # 回退到指定的commitID前7位的版本

git reset 9e5e64a # 将会使 master 指向 9e5e64a --hard 会强制覆盖了工作目录中的文件

git clean -dfx #清除库上没有的东西

git remote -v # 参看远程仓库

git branch -a # 参看远程分支

# 查看当前git分支所属

git branch -vv

git branch | grep "*"

# git log 附带一系列的总结性选项。如想看到每次提交的简略的统计信息,你可以使用 --stat 选项

git log --stat

# --shortstat 只显示 --stat 中最后的行数修改添加移除统计

# --name-status 显示新增、修改、删除的文件清单。

git log --oneline --decorate --graph --all # 图像显示git log信息

git log --pretty=format:"%h - %cd %s" --graph # 列出指定格式的log

git log -since="2 weeks ago" # 显示2周前到现在所有的历史记录

git reflog # 查看引用日志

# 从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交

git rm

# git mv ...

# 下载远程仓库的所有变动

git fetch [remote]

# 显示所有远程仓库

git remote -v

# 显示某个远程仓库的信息

git remote show [remote]

# 增加一个新的远程仓库,并命名

git remote add [shortname] [url]

# 取回远程仓库的变化,并与本地分支合并

git pull [remote] [branch]

# 上传本地指定分支到远程仓库

git push [remote] [branch]

# 强行推送当前分支到远程仓库,即使有冲突

git push [remote] --force

# 推送所有分支到远程仓库

git push [remote] --all

# git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作

# git fetch 命令会将数据拉取到你的本地仓库 - 它并不会自动合并或修改你当前的工作

git fetch [remote-name]

#如果你使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写。

#所以,git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作。

#必须注意 git fetch 命令会将数据拉取到你的本地仓库 - 它并不会自动合并或修改你当前的工作。

#当准备好时你必须手动将其合并入你的工作。

#git clone 命令会自动设置本地 master 分支跟踪克隆的远程仓库的 master 分支(或不管是什么名字的默认分支)。

#运行 git pull 通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支

#当 git fetch 命令从服务器上抓取本地没有的数据时,它并不会修改工作目录中的内容。它只会获取数据然后让你自己合并。

#git pull 在大多数情况下它的含义是一个 git fetch 紧接着一个git merge 命令。

#不管它是显式地设置还是通过clone或checkout 命令为你创建的,git pull都会查找当前分支所跟踪的服务器与分支,从服务器上抓取数据然后尝试合并入那个远程分支。

#由于 git pull 的魔法经常令人困惑所以通常单独显式地使用 fetch 与 merge 命令会更好一些。

# 当你想要将 master 分支推送到 origin 服务器时(再次说明,克隆时通常会自动帮你设置好那两个名字),那么运行这个命令就可以将你所做的备份到服务器

git push origin master

# 查看某一个远程仓库的更多信息

git remote show origin

#to discard changes in working directory是一个危险的命令,你对那个文件做的任何修改都会消失.

git checkout -- <file>..."

# 恢复暂存区的指定文件到工作区

git checkout [file]

# 恢复某个commit的指定文件到暂存区和工作区

git checkout [commit] [file]

# 恢复暂存区的所有文件到工作区

git checkout .

# 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变

git reset [file]

# 重置暂存区与工作区,与上一次commit保持一致

git reset --hard

# 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变

git reset [commit]

# 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致

git reset --hard [commit]

# 重置当前HEAD为指定commit,但保持暂存区和工作区不变

git reset --keep [commit]

# 新建一个commit,用来撤销指定commit

# 后者的所有变化都将被前者抵消,并且应用到当前分支

git revert [commit]

# 暂时将未提交的变化移除,稍后再移入

git stash

git stash pop

git、snv、repo等版本管理工具使用对比相关推荐

  1. 实验室培训(一)—— 版本管理工具git

    1.什么Git Git是分布式的版本管理工具,在实际项目管理中起到非常重要的作用. 思考1:什么是版本管理工具?为什么要使用版本管理工具? 答:了解版本控制. 2.版本控制 版本控制(Revision ...

  2. 软件测试——版本管理工具:SVN和Git

    软件测试--版本管理工具:SVN和Git SVN SVN的安装和介绍 SVN的安装 操作 冲突 Git Git的安装和配置 git的命令行用法 git 代码冲突 持续集成和持续交付 定义 目的 持续集 ...

  3. 版本管理工具GIT篇

    版本管理工具GIT篇 一.版本管理工具干什么用的? 备份文件 作用同U盘 网盘 保存每天的成果   若是本地文件丢失 损坏  找备份 如 打游戏时候的存档 记录历史 网盘 U盘存储的是文件最新状态   ...

  4. 版本管理工具和as的一些配置

    1. 安装Git/CVS 第一步首先你需要安装Git/CVS等版本管理工具,这个请自行百度 2. 新建一个本地空仓库 新建一个仓库叫GitTest 仓库现在是空的什么都没有 找到路径,然后复制路径(这 ...

  5. Git——版本管理工具(一)

    Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介绍 Git  -- The stupid content tracker(傻瓜式的内容跟踪器) 1. Git 背 ...

  6. 《Git》版本管理工具的初识与入门

    前言 我所在的公司一直是使用svn作为版本管理工具,因此我没有接触过git,但是不管如何git作为目前大火的版本管理工具,了解并掌握是很有必要的,因为你不能确定下一家公司使用的是svn还是git作为版 ...

  7. git管理工具 linux,linux系统下使用流行的版本管理工具 Git

    前几天被版本管理困扰了好久,主要是因为 没法回到之前的版本,新版本又出了问题真的很尴尬. 终于决定使用目前网上很火的版本管理工具-------Git 历史啥的就不说了,说些有用的. 我用的是oschi ...

  8. Git 版本管理工具(一)

    Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介绍 Git  -- The stupid content tracker(傻瓜式的内容跟踪器) 1. Git 背 ...

  9. 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)

    首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...

最新文章

  1. vb6 combo根据index显示选项内容_按指定次数重复显示,两种方法随意选
  2. [moka同学笔记]linux服务器防火墙的设置
  3. java调用外联服务用xml,Spring IOC 依赖注入的两种方式:XML和注解
  4. python3 第二十五章 - comprehensions(推导式)
  5. 连接Oracle时报错ORA-28547
  6. zabbix 监控 3com
  7. 关于自我学习停滞的思考
  8. jpetstore学习第4章
  9. Debian中proftpd+mysql+虚拟用户+匿名用户+磁盘限额的配置
  10. Java基础:常用的API
  11. NodeJs——子进程
  12. CCS安装多版本编译器 Compiler version__更新手动下载、安装方法
  13. 软件生成CAN总线,RS422,ARINC429总线物理波形。
  14. Windows控制面板没有Realtek高清晰音频管理器
  15. 概率论与数理统计加法公式
  16. 微软Kinect完全拆解
  17. 用自己打工挣的钱,他创办广告公司,总资产已达3000多万
  18. 《用微信测试公众号慰问你的好兄弟/姐妹》:用java简单实现微信公众号消息推送(入门且详细且有效)
  19. 最近邻算法(KNN算法)
  20. 分享RTFM和STFW的意思

热门文章

  1. 深谈计算机网络互联技术论文,浅谈计算机网络技术对音乐发展的影响
  2. 操作系统发展史_有史以来最好的操作系统的可怕的用户界面
  3. Rust 和 WebAssembly 的世界
  4. 在VB中使用水晶报表总结
  5. Cisco PT 案例二:为路由器配置并连接SSH
  6. 实验三+087+饶慧敏
  7. ffserver + hls
  8. 什么是webpack
  9. datagrip 导出 Oracle 数据库结构和数据到sql脚本中
  10. (资源免费)Sublime Text 3如何格式化json文本+格式化Sql语句