Git基础教程

Git简介

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

基本功能

1.git init 创建项目仓

$ git init

2.git clone [url] 克隆项目仓

$ git clone https://github.com/pinoliu/ONENOTE.git

3.git add [file] 添加文件

$ git add README.md

4.git status 查看文件状态

$ git status
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached ..." to unstage)

        new file:   README.md

5.git commit 提交修改的内容

git commit 只会将 git add 的当时文件的变化进行提交, git commit -a 会将当前全部修改的文件进行提交。

$ git commit
[master (root-commit) 25e64f2] commit demo
 1 file changed, 3 insertions(+)
 create mode 100644 README.md

6.git branch [分支名称] 新建分支

当项目刚 git init 未 git commit 之前,最基础的 master 实际上是未创建的,即当前还没有生成分支的配置信息。因此项目创建后并提交过一次,才能创建分支。

$ git branch demo_test

$ git branch
 demo_test
* master

7.git checkout [分支名称] 切换分支

$ git checkout demo_test
Switched to branch 'demo_test'

8.git branch -d [分支名称] 删除分支

$ git branch demo_delete

$ git branch
  demo_delete
* demo_test
  master

$ git branch -d  demo_delete
Deleted branch demo_delete (was 25e64f2).

9.git merge [分支名称] 同步分支

$ git branch demo_merge
$ git checkout demo_merge
Switched to branch 'demo_merge'

【修改文件,比如README.md】

$ git add README.md

$ git commit
[demo_merge b3d746c] Demo for merge.
 1 file changed, 4 insertions(+)

$ git checkout demo_test
Switched to branch 'demo_test'

$ git merge demo_merge
Updating 25e64f2..b3d746c
Fast-forward
 README.md | 4 ++++
 1 file changed, 4 insertions(+)

常见冲突的解决方式

1.本地代码与个人仓冲突

回退本地的提交记录

$ git reset --soft [提交记录]

2.个人仓与项目仓冲突

克隆个人仓的代码,在本地回退提交记录,并回退个人仓的提交记录

$ git reset --hard [提交记录]

$ git push -a --hard

3.个人/项目 分支间冲突

构造分支间冲突后,使用 可视化比较工具(如Beyond Compare)进行比较并保存后,提交记录即可。

$ git commit -a
[demo_test 81f1b04] Demo_test for conflick
 1 file changed, 2 insertions(+), 2 deletions(-)

$ git checkout demo_merge
Switched to branch 'demo_merge'

$ git commit -a
[demo_merge 9e91d82] demo_merge for conflict:wq
 1 file changed, 2 insertions(+), 2 deletions(-)

$ git checkout demo_test
Switched to branch 'demo_test'

$ git merge demo_merge
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.

$ git mergetool
Merging:
README.md

Normal merge conflict for 'README.md':
  {local}: modified file
  {remote}: modified file

$ git commit -a
[demo_merge 134c625] Merge branch 'demo_test' into demo_merge

你可能感兴趣的:(开发环境,IT基础知识,git,基础教程,版本控制系统)