初始化配置
git config --global user.name "xu_pengtao" //全局配置你的名字
git config --global user.email "xxx@163.com" //全局配置邮箱
git config --list //获取配置信息
仓库状态
git status //查看仓库的状态
远程服务器
1、添加一个远程服务器:
git remote add origin(别名,根据爱好命名) git@github.com:xxx/xxx.git
2、想查看远程服务器的相关信息
# shows URLs of each remote server
git remote -v
# gives more details about origin
git remote show origin(别名)
3、把本地库的所有内容推送到远程库上:
git push -u origin master
把本地库的内容推送到远程,用git push
命令,实际上是把当前分支master
推送到远程。
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
git push origin master
从远程库克隆
当已经有一个远程库的时候,我们可以用命令git clone
克隆一个本地库:
git clone git@github.com:test/testgit.git
当远程库存在多个分支时,通过一下命令可以克隆指定的分支到本地
git clone -b dev(分支名) git@github.com:test/testgit.git
创建与合并分支
创建dev
分支,然后切换到dev
分支:
git checkout -b dev
git checkout
命令加上-b
参数表示创建并切换,相当于以下两条命令:
git branch dev
git checkout dev
查看当前分支:
git branch
我们在dev
分支上进行添加修改操作,然后我们把dev
分支的工作成果合并到master
分支上:
git checkout master
git merge dev
git merge
命令用于合并指定分支到当前分支。
注意:git merge
的信息里面可能有Fast-forward
字样,Git告诉我们,这次合并是“快进模式”,也就是直接把master
指向dev
的当前提交,所以合并速度非常快。当然也不是每次合并都能Fast-forward
。合并完成后,就可以放心地删除dev
分支了:
git branch -d dev
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <branch>
强行删除。
在本地创建和远程分支对应的分支,使用git checkout -b dev(分支名) origin/dev
,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联
git branch --set-upstream branch-name origin/branch-name;
从远程抓取分支,使用git pull
,如果有冲突,要先处理冲突。
解决冲突
进行合并的时候,会提示有冲突出现CONFLICT(content)
,必须手动解决冲突后再提交。git status
也可以告诉我们冲突的文件。
打开冲突文件我们会看到Git用<<<<<<<
,=======
,>>>>>>>
标记出不同分支的内容,我们修改后提交:
git add readme.md
git commit -m "conflict fixed"
用带参数的git log
也可以看到分支的合并情况:
git log --graph --pretty=oneline --abbrev-commit