Git常用方法和命令

关联远程仓库

本地没有仓库,将远程仓库克隆到本地

git命令中远程服务器的连接方式主要有以下两种,其中SSH方式需要事先在git服务器配置SSH Key

  • 通过HTTPS方式:

    $ git clone https://user@bitbucket.org/user/demo.git
    
  • 通过SSH方式:

    $ git clone git@bitbucket.org:user/demo.git
    

本地没有仓库,创建本地仓库,并推送到远程仓库

如果本地没有仓库,需要先创建一个本地仓库

$ echo "# demo" >> README.md
$ git init
$ git add README.md
$ git commit -m "first commit"
$ git remote add origin git@github.com:user/demo.git
$ git push -u origin master

将已有的本地仓库推送到远程仓库

  1. 切换到本地仓库目录

    $ cd /path/to/your/repo
    
  2. 关联已有的远程仓库,并将本地仓库推送到远程仓库

    $ git remote add origin git@bitbucket.org:user/demo.git
    $ git push -u origin master
    

添加多个远程仓库

如果想把本地仓库同步到多个git服务器(如githubbitbucket),需要添加多个远程仓库

  1. 查看当前关联的远程仓库

    $ git remote
    $ git remote -v
    
  2. 添加githubbitbucket远程地址

    $ git remote add github git@github.com:user/demo.git
    $ git remote add bitbucket git@bitbucket.org:user/demo.git
    
  3. 推送到远程仓库,首次推送须使用以下命令

    $ git push -u github master
    $ git push -u bitbucket master
    

参考一个项目push到多个远程Git仓库

添加标签

怎么给版本添加标签

  1. 查看标签

    $ git tag
    
  2. 添加标签

    $ git tag v1.0.1
    
  3. 推送标签到远程

    $ git push origin v1.0.1
    
  4. 删除标签

    $ git tag -d v1.0.1
    

配置SSH登录git服务器

  1. 进入本地ssh目录 ,在/c/Users/username/.ssh

    $ cd ~/.ssh
    
  2. 生成密钥对,密钥对文件名和存放路径建议使用默认的,可以不设置密码

    $ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/c/Users/username/.ssh/id_rsa):
    Created directory '/c/Users/username/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /c/Users/username/.ssh/id_rsa.
    Your public key has been saved in /c/Users/username/.ssh/id_rsa.pub.
    The key fingerprint is: e7:94:d1:a3:02:ee:38:6e:a4:5e:26:a3:a9:f4:95:d4 emmap1@EMMA-PC
    
  3. 将密钥复制到远程git服务器上,一般在个人账户设置里,bitbucket在左下角头像的设置中,不要将SSH Key配置到项目的Access Key 中,会出现授权拒绝

    $ cat id_rsa
    
  4. 测试配置是否生效

    $ ssh -T git@bitbucket.org
    

创建分支

本地创建分支

$ git branch branch-Test

查看分支,有*号的分支是当前所处的分支

$ git branch
  branch-Test
* master

切换分支

$ git checkout branch-Test

分支合并

切换到master分支

$ git checkout master

合并分支

$ git merge branch-Test

删除分支

$ git branch -d branch-Test

注意:推送新分支不能直接使用git push命令,需要指定远程仓库名和分支名

$ git push github branch-Test

版本回退

将本地仓库回退到指定版本

$ git log
$ git reset --hard id