安装
Yum install git
配置
$ git config --global user.name "YourName"
$ git config --global user.email "email@example.com"
创建版本库
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
$ git init
Initialized empty Git repository in/Users/michael/learngit/.git/
创建一个文件,提交到版本库
Touch readme.txt
$ git add readme.txt
$ git commit -m "wrote a readmefile"
[master (root-commit) eaadf4e] wrote areadme file
1file changed, 2 insertions(+)
create mode 100644 readme.txt
创建多个文件提交到版本库
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."
查看版本库状态
$ git status
查看版本修改
$ git diff readme.txt
查看版本库提交日志
$ git log
回退到上一个版本
$git reset --hard HEAD^
回退到指定版本
$ git reset --hard 1094a
HEAD is now at 83b0afe append GPL
添加版本库之前查看与版本的不同
$git diff readme.txt
撤销工作区对某个文件的修改
$ git checkout a.php
撤销所有修改
$git checkout
如果已经提交到版本库了,要想撤销,直接回退到上一个版本
删除工作区的文件
Rm a.php
找回删除的文件
Git checkout a.php ....
强制删除版本库中的文件
Git rm -f a.php
远程库创建(码云)
注册,登陆,设置ssh秘钥
ssh-keygen -t rsa -C "123456789@qq.com"
cat ~/.ssh/id_rsa.pub
将公钥文本信息,添加到设置中的ssh公钥
创建库的ssh地址:
将远程库跟本地库关联
git remote add origin git@gitee.com:abcde/test.git
查看关联情况:
Git remote -v
将本地库的文件推送到远程库
git push -u origin master
如果远程库不为空,会提示失败,现将远程库清空再提交
从远程库克隆版本库到本地
$ git clone git@gitee.com:abcde/test.git
添加文件推送到远程库
$git push origin master
创建并且换分支
$ git checkout -b dev
或者
$ git branch dev
$ git checkout dev
查看当前分支
$ git branch
切换到master分支,将dev分支合并
$ git checkout master
$ git merge dev ###git merge命令用于合并指定分支到当前分支
删除分支
$ git branch -d dev
当在不同的分支上修改了相同的文件,合并时产生冲突
查看冲突信息
$git status
打开文件手动修改文件解决冲突,再提交
查看提交的结果
$git log --graph --pretty=oneline
分支策略,master为稳定分支
Dev为开发分支,所有的开发人员都从dev分支上checkout出自己的分支,完成后将自己的分支合并到dev分支上
查看分支
$ git remote -v
origin git@github.com:michaelliao/learngit.git (fetch)
origin git@github.com:michaelliao/learngit.git (push)
推送分支
$ git push origin master (远程主分支,还可以是远程的其他分支)
master分支是主分支,因此要时刻与远程同步;
dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
多人协作,远程推送产生的问题
从远程库clone时,默认情况下,你的小伙伴只能看到本地的master分支,你的小伙伴要在dev分支上开发,就必须创建远程origin的dev分支到本地
$ git checkout -b dev origin/dev
完成工作后,将本地的分支推送到远程的dev分支
$ git push origin dev
如果多个人都要向远程的dev分支推送,产生冲突,推送失败,解决办法先用git pull把最新的提交从origin/dev抓下来,合并冲突再推送,git pull也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接
本地的dev分支跟远程的dev分支建立链接
$ git branch --set-upstream-to=origin/devdev
多人协作的工作模式通常是这样:
首先,可以试图用git push origin <branch-name>推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!