Git 基本常用操作

一. Git基本的工作流程简介如下:

 1.在工作目录中修改某些文件;

 2.对修改后的文件进行快照,然后保存到暂存区域;

 3.提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中.

二.git常用命令操作

1. git  clone

 git clone 代码库的url

  eg: git clone ssh://xxx@ip:29422/project

           git clone -b test ssh://gerritroot@192.168.33.252:29422/test.git 

          克隆到本地的库,默认的代码库的当前分支(活动分支)名称是master,如果下载的时候,加上-b 分支名称,下载下来的代码库的当前分支(活动分支)就是指定的分支名称: git clone –b branch1 ssh://jon@192.168.33.252:29422/test.git  克隆到本地的库,默认的代码线是branch1 ,git clone 其他用法可以使用 git clone - -help查看.

2.git  status

 可以使用git status查看版本库中文件提交的状态,没提交的信息会有显示.

3.git  add   //将工作区的修改提交到暂存区

    1).  git add filename

    2). git add directoryname

    3). git add .  //其中.表示当前目录下新添加的文件或目录,修改的文件或目录

4.git commit   //将暂存区的文件或目录提交到版本库区

git commit 与 git commit –m “message”相同,只是后者直接以-m参数将提交日志写入

5.git commit - -amend

    1). 修正提交单中错误的用户名及邮箱

  eg:git commit - -amend --author=’jon jon@126.com’

    2). 代码走查不通过的时候,在本地使用这个命令可以不产生新的代码走查单

     在本地修改完走查不通过的文件,需要执行git commit的时候,不要使用git commit –m,而是使用git commit --amend命令(前提本地代码库中的.git/hooks/commit-msg 钩子脚本是存在的,如果钩子脚本不存在,要到gerrit web页面的走查单中将changed-id xxxx贴到git commit --amend弹出的编辑框中)

6.git  rm //删除文件或目录

     1). git rm  文件名称

     2). git rm –r 目录名称

     3) .将不需要的文件及目录从工作区及暂存区中删掉

         a.  如果需要删除git库中已经受控的文件或目录请使用此命令,不要使用操作系统下的删除命令.受控-表示文件及目录状态为跟踪状态

         b.  如果要删除第一次放到工作区的文件或目录,直接使用操作系统下的删除命令,也可以使用 git clean –df 移除不受控的文件或目录

         c.   git rm test.txt 将test.txt从工作区及暂存区删除,如果需要提交,下一步直接执行git commit –m “message”即可

7.git  mv

  git mv oldname newname  //将文件或者目录重命名

8.git  diff  //对比本地库中工作区与暂存区的差异

      1). git  diff  --cached //对比本地库中暂存区与库区的差异

      2). git  diff head  //对比本地库中工作区与库区的差异

9.git  checkout

      1). git checkout -- filename 或者git checkout -- directory

      在本地git库的工作区修改或删除已受控的文件,后悔了,想要会退到之前的状态(工作区的文件回到修改之前的状态,暂存区,库区不受影响)  

      2).git checkout branchname  //切换到某个分支

      3). git checkout –b branch1 commit-ID  //以某个提交修订版本为基准建立新分支,并切换到新分支

10.git  reset  head //一般是在执行git add的之后,想取消add的动作(工作区不受影响,库区不变,暂存区回到add之前的状态)用

     1).git  reset  head  文件名称

     2).git  reset  head 目录名称

11.git  pull  //更新本地库

     1).git pull --rebase  //在本地库的A分支下执行该命令,表示将远程库中对应的A分支内容更新到本地A分支,加入参数 --rebase 可以避免在更新过程中本地库中产生合并节点

     2).git pull origin branchname  //将远程仓库的分支内容更新到本地库的当前分支上

12.git  push  //将提交到本地库中的内容推送到远程库中

   1).git push origin HEAD:refs/for/branchname  //推送到gerrit页面走查

      2).git push origin branchname //直接推送到远程git库中

13.git log //输出信息显示

     1).git  log -p //用于查看每一次提交条目的补丁内容,这在代码复查时很管用,--表示本次提交版本之前文件的修改状态

     2).git  log --stat  //显示被修改文件的修改统计信息,添加或删除了多少行

     3). git log --pretty=format

    可以将提交历史显示成你想要的格式,这里format的可选项包括:oneline,short,medium,full,fuller,email,raw

14.git log 可以指定代码提交者或者邮箱进行提交者代码日志查询

 eg:git log --author ="jon"

             git log --author="jon@126.com"

15.git  branch

     1).git branch //在本地库执行git branch 可以查看本地库的分支,并且可以查看本地库当前分支(通常用*标记)

     2).git branch –r  Version:1.0 StartHTML:0000000107 EndHTML:0000031195 StartFragment:0000030884 EndFragment:0000031181

分支之间的合并

//在本地库中查看远程库的分支

     3).git branch  branname  commit-ID //以某个修订版本建立新分支,commit-ID为40位的哈希值

     4).git branch –d branchname //删除分支,在删除时会检查要删除的分支是否已经合并到其他分支,否则拒绝删除

     5).git branch –D branchname // 强制删除分支

     6).git branch –m branch1 branch2 //分支重命名,如果库中有同名的分支,则拒绝重命名

     7).git branch –M branch1 branch2 //强制重命名,不论库中是否有同名的分支

16.git  merge //分支之间的合并,如果你想将分支dev的内容合并到主分支master,可执行如下命令:

    git checkout master   

    git merge  --no-ff dev

17.git  rebase

     1).git rebase  //通常称为变基,实现分支合并,在主分支中执行 git rebase dev 将dev分支的内容合并到主分支

     2).git rebase -i  交换式应用可以改变提交历史顺序,改变日志,改变提交者

18.git cherry-pick  //分支拣选功能,eg: 现在dev分支上合入了几个修改点,但是只想将其中的一个修改点合入到主分支master,此时就要使用git cherry-pick,步骤如下:

     1).git checkout master //切换到主分支

     2).git log //在开发分支上找到需要部分功能的提交修定号通过git log找到(commit  40位的哈希值)

     3).git cherry-pick commit-ID

19.git  tag //列出所有版本

     1).git  tag –m  “ xxxx”  tagname commit-ID/head/branchname  //以某个分支最新的代码或者某个修订提交版本号创建一个带说明的标签

     2).git tag –l  //查看git库中的标签名称

     3).git show  tagname //显示tag内容

     4).git checkout tagname  //切换到标签中,查看对应的代码

     5).git tag | grep 9.0.0.au //过滤版本,显示9.0.0.au的版本

20.git  stash  //可以用于暂存代码, eg:想要切换一个branch去做其他的事情,但是当前又有一些代码没有commit. 显然也不会想要把这些修改放弃掉,此时,可以使用该命令.

  1).git stash  //暂存当前代码,可以暂存多个,依次压入堆栈

     2).git stash pop //恢复暂存的代码

     3).git stash clear //清除暂存代码

三.git常用命令附图:

1.中文:

2.英文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值