git review

来源:互联网 发布:祝福婚姻的诗句知乎 编辑:程序博客网 时间:2024/06/05 19:39

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

安装

sudo add-apt-repository ppa:git-core/ppasudo apt-get updatesudo apt-get install gitgit 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>... //把工作区的更改提交到stagegit rm <file>...  //删除文件,把工作区的删除文件提交到stagegit 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//之后pushgit 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
原创粉丝点击