Git基本用法

     博客原文请参考:http://zhuqiuhui.space/Blogs/2017/03/git-usage.html

     Git真是一个强大的工具,由于开发需要,本文特别总结了git的一些常用命令和基本配置,如Git与账户绑定、怎么新建项目和一些Git基本使用命令。

一、Git账户绑定

    在使用Git前要首先进行账户绑定(配置一次就可以了,以后就不用配置了),绑定的时候需要key值,可使用下面命令生成key值:

      
      
1
      
      
ssh-keygen -t rsa -C "your_email@youremail.com"
验证是否配置成功,使用命令:
      
      
1
      
      
ssh -T git@github.com

二、Git下新建项目

建立项目与Git之间的联系步骤:

  1. 在自己Github主页上新建仓库,如取名:TestGit.git
  2. 进入要上传的本地代码主文件夹中(git初始化):
            
            
    1
            
            
    git init
  3. 添加远程地址(你要推送到的远程仓库的地址):
            
            
    1
            
            
    git remote add origin git@github.com:zhuqiuhui/TestGit.git
  4. ~ 开发 ~ 开发 ~ 开发 ~
  5. 把本地代码存到暂存区:
            
            
    1
            
            
    git add .
  6. 把本地代码存到本地仓库(最好加上注释):
            
            
    1
            
            
    git commit -m "注释"
  7. 把本地代码推送到远程仓库(本测试用例用的是master分支):
            
            
    1
            
            
    git push origin master
    备注:第一次push的话,可能会出现“reject”错误,那是因为远程仓库与本地仓库版本不一致的原因,所以你先执行“git pull origin master”(先拉一下,把远程代码拉到本地),但在拉的过程中还可能会出现“fatal: refusing to merge unrelated histories”错误,你重新执行下“git pull origin master --allow-unrelated-historie”就可以了,然后再push代码,这样就ok了。

三、常用Git命令

3.1 基本Git命令

  • 查看远程分支:git branch -a
  • 查看本地分支:git branch
  • 从当前分支创建b1分支:git branch b1
  • 从当前分支创建b1分支,并切换到b1分支:git checkout -b b1
  • 从master分支创建b1分支,并切换到b1分支:git checkout -b b1 master

3.2 Git修改提交注释

  • 修改最后一次提交的信息:git commit --amend
  • 修改前三次历史提交注释信息:git rebase -i head~3 
备注:显示后把你想要改的第几次前面“pick”改成“edit”,然后接着git commit --amend,改完的话执行git rebase --continue退出即可

3.3 git stash用法

  • 保存当前的修改工作:git stash save "注释内容" (不加注释直接git stash) 
备注:备份当前工作内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致,同时,将当前的工作区内容保存到Git栈中。
  • 恢复最近修改的工作:git stash pop 
备注: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。
  • 显示Git栈内的所有备份:git stash list
  • 进入指定的stash:git stash apply stash@{2}
  • 移除指定的stash:git stash drop stash@{2}
  • 清空Git栈:git stash clear

具体使用案例:我在develop分支中开发新功能,这时候master分支中有bug急需修改。

  1. git stash (备份当前工作内容)
  2. git checkout master (切换master)
  3. 修改提交完master中bug后, git checkout develop (切回develop)
  4. git stash pop (从Git栈中读取最近一次保存的内容,恢复工作区的相关内容)

3.4 git reset用法

首先理解几个概念:

  • working directory:工作目录
  • staging(或称为index) area:暂存区域
  • git directory(repository):本地仓库

相关的reset命令:

  • (1)git reflog:查看所有分支的所有操作记录(包括commit、reset的操作、已经被删除的commit记录)
  • (2)git log:查看当前分支的提交日志,但不能察看已经删除了的commit记录
  • (3)git reset --hard 0254ea7(对应的操作ID):reset到ID对应的时间点
  • (4)git reset --hard head~1:reset到最新一次提交之前
  • 备注:
    • --hard参数:重设index和working directory,自从commit以来在working directory中的任何改变都被丢弃,并把HEAD指向commit。
    • --soft参数:index和working directory中的内容不作任何改变,仅仅把HEAD指向commit。这个模式的效果是,执行完毕后,自从commit以来的所有改变都会显示在git status的"Changes to be committed"中(应用场景:当提交了之后,你又发现代码没有提交完整,或者你想重新编辑一下提交的commit)。

3.5 git给远程库添加多个url地址

场合:你可能想要把你的本地的git库,既push到github上,又push到开源中国的Git@OSC上或者coding net上,怎么解决呢?有人可能会用两个甚至多个远程库,即再添加一个远程库git remote add origin2;这个方法很低效,因为你要git push 两次才能完成push到两个库。 
解答原理:git的一个远程库可以对应多个地址。 
基本命令:

  1. 在本地仓库创建一个指向远程仓库url的链接别名name,可以任意命名:git remote add name url (name可以为origin、both等等自定义的名字)
  2. 增加一个远程库地址:git remote set-url --add --push origin url1
  3. 再增加一个远程库地址:git remote set-url --add --push origin url2
  4. 删除url链接别名name:git remote rm name (常见的为origin)
  5. 显示当前所有远程库的详细信息,显示格式为:远程库名字 url连接(类型),命令:git remote -v
  6. 查看config文件,里面可以看到添加的地址,位于当前工程.git/config中,可使用命令:git config -e
  7. 推送时只需要执行命令:git push name master,其中name就是url的链接别名,master是推送的分支,要保证几个推送仓库的分支命名是一样的。

3.6 查看改动的内容

     改动的内容如果commit的话,可使用:

  • git log -n 2 --stat :查看最后两次改动过的文件
  • git log -n 1 -p :查看最后一次提交更改的细节
  • 使用git diff来查看改动内容,其中HEAD代表commit版本,Index代表staged版本
  • (1)git diff:比较工作目录(Working tree)和暂存区域快照(index)之间的差异,也就是修改之后还没有暂存起来的变化内容。(2)git diff --cached:查看已经暂存起来的文件(staged)和上次提交时的快照之间(HEAD)的差异
  • (3)git diff --staged:显示的是下一次commit时会提交到HEAD的内容
  • (4)git diff HEAD:查看workspace和local repository的差别
  • (5)git diff b1 b2 或 git diff b1..b2:将b1和b2分支上的最新提交做diff
  • (6)git diff test:查看当前目录和test分支的差别
  • (7)git diff HEAD^ HEAD:比较上次提交commit和上上次提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bboyzqh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值