一、安装
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分支
五、远程仓库
首先,讲ssh的公钥添加到github上去,生成公钥的方法:
//建立ssh,将公钥添加到github账户,建立本地公钥的方法为
ssh-keygen -t rsa -C "youremail@example.com"
六、查询
//查询远程库信息
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