Git常用命令

前言

复习git时重新记录了一边,所以记录得比较简洁,以便一时没用Git后面又把各种命令啥的都忘了。
Git下载地址
使用:
在使用前必须配置账号和邮箱
git config --global user.name “wukong.sun” # 请换成你自己的名字,除非你凑巧也叫wukong.sun
git config --global user.email “wukong.sun@qunar.com” # 同上
global收全局配置,所有连接都可以用,如果想用不同的账户邮箱登录,则可以进到这些本地repository的目录后,执行类似下面命令:
git config user.name “xingzhe.sun”
git config user.email “xingzhe.sun@huaguoshan.org”

上述命令没有加“–global”参数,因而是针对具体本地repository的。这些配置的优先级高于全局配置,因此连接时会起作用。
想要用SSH方式clone项目时,还需要配置SSH
生成ssh key pair
ssh-keygen -t rsa -C “wukong.sun@qunar.com”
查看公钥
cat ~/.ssh/id_rsa.pub
把公钥加到github’或者gitlab等管理平台上,后面就可以直接用ssh’方式clone项目了

Git原理简单图解

在这里插入图片描述
在这里插入图片描述

常用Git命令解释

git init—初始化本地仓库
git add —提交到暂存区
git commit —提交到本地仓库(本地master分支)
git clone—clone远程仓库到本地
git push—将本地仓库推送到远程仓库
git pull—同步远程仓库到工作区
git status—本地仓库的当前状态
git diff—查看与前一个版本的区别
git log—显示提交日志

关联一个远程仓库

要关联一个远程库,使用命令git remote add origin https/ssh;

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

版本回退

head表示当前版本,head^表示前一个版本,head^^表示,前100个版本就是head~100;
当我们要进行版本回退时:
$git reset -hard head^
$git reser -hard 1094a(版本号,git log 可以显示)

$git relog —显示你的所有历史提交,包括已经撤销的
$git checkout – fileanme—丢弃工作区的修改
$git reset HEAD filename—丢弃暂存区的的修改,重新放回工作区

分支

  1. 第一步,dev分支,然后切换到dev分支:

    $ git checkout -b dev
    Switched to a new branch 'dev

  2. git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
    $ git branch dev
    $ git checkout dev
    Switched to branch 'dev'

  3. 然后,用git branch命令查看当前分支:
    $ git branch
    * dev
    master
    git branch命令会列出所有分支,当前分支前面会标一个*号。

  4. 然后,我们就可以在dev分支上正常提交,比如对readme.txt做个修改,加上一行:
    Creating a new branch is quick.
    然后提交:

    $ git add readme.txt
    $ git commit -m "branch test"
    [dev b17d20e] branch test
    1 file changed, 1 insertion(+)

  5. 现在,dev分支的工作完成,我们就可以切换回master分支:
    $ git checkout master
    Switched to branch 'master'

  6. 现在,我们把dev分支的工作成果合并到master分支上:

    $ git merge dev
    Updating d46f35e..b17d20e
    Fast-forward
    readme.txt | 1 +
    1 file changed, 1 insertion(+)
    git merge命令用于合并指定分支到当前分支。合并后,再查看readme.txt的内容,就可以看到,和dev分支的最新提交是完全一样的。

    注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。当然,也不是每次合并都能Fast-forward

  7. 合并完成后,就可以放心地删除dev分支了:

    $ git branch -d dev
    Deleted branch dev (was b17d20e).
    删除后,查看branch,就只剩下master分支了:

    $ git branch
    * master
    因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。

远程先开好分支然后拉到本地
git checkout -b feature-branch origin/feature-branch//检出远程的feature-branch分支到本地
本地先开好分支然后推送到远程
$ git checkout -b feature-branch//创建并切换到分支feature-branch
$ git push origin feature-branch:feature-branch//推送本地的feature-branch(冒号前面的)分支到远程origin的feature-branch(冒号后面的)分支(没有会自动创建)

Git多人工作模式

多人协作的工作模式通常是这样:

  1. 先,可以试图用git push origin <branch-name>推送自己本地某分支的修改;
  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  3. 如果合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
  5. 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

小结

  • 查看远程库信息,使用git remote -v;
  • 本地新建的分支如果不推送到远程,对其他人就是不可见的;
  • 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
  • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name
    origin/branch-name,本地和远程分支的名称最好一致;
  • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name
    origin/branch-name;
  • 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值