git review

前些日子,不想学习,就在廖雪峰的博客学习了一下git工具。大概过了一遍之后,对git 有了基本的认识,但一直没融化到日常中进行使用,忘记殆尽,趁今天有点时间,整理一下常用命令,梳理一下这个工具。

安装

sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update

sudo apt-get install git
git config --global user.name "Your Name"
git config --global user.email "email@example.com"

由于在windows 上看多了英文的git status结果,先在Ubuntu中将中文改成英文:

echo "alias git='LANG=en_GB git'" >> ~/.bashrc

建立本地仓库

首先,需要在本地进行操作,进入工程目录,操作系统的命令不再赘述。

到达当前目录之后,建立本地仓库,输入以下命令,物理上建立一个.git的隐藏目录。

git init

版本控制 -本地仓库

在本地,有三个位置,自底向上分别为:

  • 工作区
  • stage
  • master

工作区就是操作系统下正常的工作目录,是所见所得的一个位置;stage和master都属于repository,是不可见的一个位置。

git status //用于查询当前目录的状态,反馈回的信息很详尽
git log //查看commit的各个版本
git log --pretty=oneline //同上,初略显示,只显示一行

git add <file>... //把工作区的更改提交到stage
git rm <file>...  //删除文件,把工作区的删除文件提交到stage
git commit -m "版本名" //将工作区的更改提交到master分支,本地的最高层

git reset --hard HEAD^ //回退到上一个版本
git reset --hard HEAD^^^ //回退到上三个版本
git reset --hard HEAD~100 //回退到上100个版本
git reset --hard <版本id>  //回退到这个id版本

git reset HEAD <file>...  //撤销该文件的git add提交

git checkout -- <file>... //清除工作区这个文件的更改,恢复到最近一次git add或者git commit时的情形

创建与合并分支

HEAD指针永远指向当前分支。

git branch //查看当前分支
git branch dev //创建一个名字为dev的分支
git checkout dev //转向一个名字为dev分支
git checkout -b dev //创建并转向一个名字为dev的分支,相当与上面两条命令之和

git merge dev //合并dev到当前分支
git branch -d dev //删除dev分支
git branch -D dev //强制删除dev分支

以上,均为本地进行的版本控制,若只有这点功能,git 就显得太鸡肋了,接下来,就是那些常常听说的名词:push pull clone诸如此类。

远程仓库

首先,讲ssh的公钥添加到github上去,生成公钥的方法:

//建立ssh,将公钥添加到github账户,建立本地公钥的方法为
ssh-keygen -t rsa -C "youremail@example.com"

github上的操作请参考与原来的教程,太简单按下不表。

接下来,一些常用的命令

查询

//查询远程库信息
git remote
//详细信息
git remote -v

clone

//从github上下载一个仓库
git clone git@github.com:name/peoject.git

//注意默认是master分支,并默认关联本地与远程origin;如需需要其他分支,则:
git checkout -b dev origin/dev

//之后push
git push origin dev

push和pull

最一般的push

git push origin branch-name

如果因为有别人的提交或者其他的一些原因产生问题,可以pull一下,是自己本地库最新,之后在push

git pull

若出现fatal: refusing to merge unrelated histories问题,参考https://stackoverflow.com/questions/37937984/git-refusing-to-merge-unrelated-histories

git pull origin master --allow-unrelated-histories

同步

//在本地创建和远程分支对应的分支,本地和远程分支的名称最好一致;
git checkout -b branch-name origin/branch-name
//建立本地分支和远程分支的关联,使用
git branch --set-upstream branch-name origin/branch-name
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值