Git学习指南.md

1、说在前面

各位小伙伴,我们非常有幸的收到黄晶晶同学的来稿。她提议我们搞一期关于Git的专题。所以这一次专题就这么来了!

2、Git的基本介绍

3、主要内容

学习Git常用的几种命令。以及和远程代码库进行交互的过程。

4、具体实验内容

4.1 Git 命令的初步使用

  1. 树莓派上创建一个裸仓库,此时树莓派可被视为服务器端(类似github)。
git init --bare 
# 例:git init --bare project_6.git
  1. 在Ubuntu电脑上,从远程服务器clone远程仓库
git clone ssh://user@server 
# 例:git clone ssh://[email protected]/home/git/server/project_6.git 
# 注:使用的是绝对路径
  1. 在Ubuntu电脑上进入clone的仓库文件夹。【后面都在Ubuntu电脑上进行操作】
  2. 在当前文件夹新建一个main.c文件,并在里面添加如下的内容
#include 

int main(int argc,char **argv)
{
  return 0;
}
  1. 接下来开始进入git的操作了。先看看使用git status看看效果
git status
  1. 这个时候可以用git add main.c 把文件加入到git的暂存区。然后再git status看看效果。
git add 
# 例:git add main.c
# 注:可以使用git add . 把所有的文件都包含进来
  1. 使用git commit命令提交代码,提交后使用git status看看区别。其中在这里面git commit Chang-id也是很常用的,建议大家提前了解一下。http://merrier.wang/?p=1145
git commit -m 
# 例:git commit -m "Add main.c, add main funcion"
  1. 提交到远程仓库,用的git push命令
git push  
# 例:git push origin master

小结:第一部分就结束了,这是一个很简单的Git使用过程

4.2 Git增加文件内容

  1. 在main函数里面增加一行
printf("Hello world!\n");
  1. git status看看区别
  2. git diff看看和已有提交的内容的区别
git diff
  1. 使用git add,git commit, git push origin master 命令进行提交。

4.3 Git版本回退

  1. 在版本回退之前,我们需要先确定一下用已经提交的历史
git log

很好,我们看到之前已经提交了2次记录,注意每一次commit 后面的一堆Hash码

例子
commit 3a5ffb29a710f672d1bcee9641205542d678cc7e
Author: Jingzheng Wang Win <[email protected]>
Date:   Sat Jan 13 13:21:52 2018 +0800

    Add some content

commit 1a1cbd26b5ab69f896f1b87d6a302dbb628981a4
Author: jack 
Date:   Sat Jan 13 10:25:48 2018 +0800

    Add 2 files
  1. 现在我看到这个版本,感觉不想要了,那么就需要回退到之前的版本。Hash码:1a1cdb的那个。然后使用git reset命令
git reset --hard 1a1cdb

然后再打开之前自己修改过的文件,那么你会发现之前增加的那些代码都已经不见了。

  1. 已经回退到了之前的版本。但是现在又觉得这个版本代码不好,我要退回到回退前的代码,就是我现在又想要Hash码3a5ffb开头的那个代码。可以使用git reset命令回退到这个版本。但是这个Hash码用git log已经找不到了。可以使用git reflog
git reflog

然后就能找到之前想要版本的hash码了

git reset --hard 3a5ffb

这样就可以。

  1. 小结:了解一下代码回退功能

4.4 还有一些代码回退

思考并尝试:如果git add 过,暂时还没有git commit,但是想把代码恢复到上一次提交的过程,应该怎么办。
提示:使用git checkout HEAD ,具体可以网上查清楚

4.5 分支的使用

分支的使用是Git中很重要的一个思想。可以考虑在自己的当前目录下创建一个分支并使用。

  1. 创建分支
git checkout -b 
例:git checkout -b dev

git checkout -b dev是两个命令的集合体,一个是git branch dev,还有一个是git checkout dev

  1. 在新的dev分支修改代码,并add,commit。(暂时不需要push)
  2. commit后,切换到master分支,然后看看你修改的代码还在吗?
  3. 如果再切换回dev分支,那么你修改过的代码回来了吗?
  4. 小结:在分支管理中,伴随比较重要的是分支的merge功能。

5、拓展提高

  1. 试着自己申请一个github账号,然后将自己的代码上传到github。想想是否与上传到树莓派类似?
  2. .gitignore文件的使用,他有什么作用。
  3. 学习git分支管理的策略。
  4. 分支之间的merge应该怎么使用。merge会存在什么问题?如果出现冲突了该怎么办?等等

你可能感兴趣的:(Git学习指南.md)