GitHub创建项目
登录GitHub,在个人主页创建项目(repository)
创建后会生成2个文件,README.md
和.gitignore
。如图
创建本地仓库
如果是第一次使用git
的话,需要配置git
的本地用户信息
git config --global user.name "username"
git config --global user.email "username@example.com"
同步Git信息
方式一(推荐)
使用git clone
命令,会自动同步git
仓库的信息。在Github项目页面的下拉框中选择HTTPS
方式,复制链接。当然也可以使用SSH
方式,但是前提是你已经配置了SSH
公钥,有关SSH
公钥的配置这里就不多说,好处就是可以不用输入密码。
git clone https://github.com/Lvzwq/AnimationTest.git
查看git
仓库信息,git config -l
。
方式二
使用git init
命令,自己配置git
仓库的信息,并同步代码。
查看git
仓库配置,git config -l
。
会发现比第一种方式少了仓库的地址的信息(remote.origin.url
),执行
git remote add origin https://github.com/Lvzwq/AnimationTest.git
同步服务器代码, 使用git pull -u origin master
, 同步远程仓库代码到本地
同步完成之后的本地仓库代码如图
提交本地新增的文件
首先我新增一个main.cpp
如图
使用git add -A
提交本地所有更改,使用git status
查看本地的文件状态
git commit -m "备注"
提交到本地仓库,git push origin master
同步到远程仓库
查看git
的log
日志,git log
命令
提交到远程仓库的代码,已经和本地保持一致。如图
创建分支的基本操作
创建分支之后,远程仓库的状态如下
合并分支
test
分支已经合并到 master
了,那么 test
也就没用了。你可以就此删除它,并在问题追踪系统里关闭该问题。
git branch -d test
遇到冲突时的分支合并
有时候合并操作并不会如此顺利。如果在不同的分支中都修改了同一个文件的同一部分,Git 就无法干净地把两者合到一起(译注:逻辑上说,这种问题只能由人来裁决。)。如果你在解决问题 #53 的过程中修改了 hotfix 中修改的部分,将得到类似下面的结果
Git 作了合并,但没有提交,它会停下来等你解决冲突。要看看哪些文件在合并时发生冲突,可以用 git status 查阅:
任何包含未解决冲突的文件都会以未合并(unmerged)的状态列出。Git 会在有冲突的文件里加入标准的冲突解决标记,可以通过它们来手工定位并解决这些冲突。可以看到README.md
文件包含类似下面这样的部分:
# AnimationTest
动画测试
<<<<<<< HEAD
这是master分支
=======
这是test分支
>>>>>>> test
提交合并之后的文件。之后的git log
日志如图
参考:Git Book