Git 基本操作与使用


1. Git 安装


2. 创建代码仓库

  • 进入本地文件夹:

    $ cd /path/to/your/directory/

  • 创建仓库:

    $ git init

  • 与远程仓库连接

    $ git remote add origin <repository URL>

    $ git remote set-url origin <repository URL>

       // 更新已有的remote(origin)的url

    $ git remote add  github <new repository URL>

       // 添加一个新的remote,名字为github

  • 配置身份:

    $ git config --global user.name "Your Name"

    $ git config --global user.email “you@example.com"


3. 提交本地代码

    $ git add <filename>    

       // 可以使用 git add . 添加所有文件

    $ git commit -m “First Commit” 

       // commit 后面必须通过 -m 参数来加上提交的描述信息


4. 分支的创建和合并

  • 分支的创建

    $ git branch <branch name>. 

    $ git checkout -b <branch name>

  • 分支的跳转

    $ git checkout <branch name>

  • 合并分支

    $ git merge  <branch name>

       // 把该分支修改并提交的内容合并到master(主)分支

  • 删除分支

    $ git branch -D <branch name>

  • 查看所有分支

    $ git branch -v


5. 与远程版本库协作

  • 假设远程版本库的地址 http://github.com/example/test.git             

    $ git clone http://github.com/example/test.git

  • 提交更改

    $ git push origin master

      // origin 指定远程版本库的地址,master部分指定同步到哪一个分支

  • 将远程版本库的修改同步到本地

    $ git fetch origin master

    $ git diff origin/master

       // 查看修改内容

    $ git merge origin/master

    $ git pull origin master

       // pull 相当于将fetch和merge两个命令一起执行


6. 查看文件修改

     $ git status

        // 查看文件修改情况

     $ git diff  <filename>

        // 可以使用 git diff 查看所有文件修改情况


7. 撤销未提交修改

    $ git checkout <filename>

       // 之后可以用git status查询状态, 这种方式只适用于未执行过add命令文件

    $ git reset HEAD <filename>

       //  取消文件添加,之后可以使用 git checkout


8. 查看提交记录

    $ git log

       // 查看所有记录

    $ git log <id> -1

     // 查看某条记录,指定该记录的id,-1表示只看一条记录


 9. 合并的冲突

冲突需要自行修改,其中Head 包含现在分支的内容,另一部分为your-branch分支的内容,这两部分内容有冲突

<<<<<<< HEAD

What's a Vegetable's favourite martial art? Carrotee!

=======

Why did the carrot get an award? Because he was outstanding in his field!

>>>>>>> your-branch


10. 关于.gitmore文件

     Git 提供了一种可配性很强的机制来允许用户将指定的文件或目录排除在版本更新之外,它会检查代码仓库的根目录下是否存在一个名为.gitmore的文件,如果存在就去一行行读取文件的内容,并将指定的文件或目录排除在版本控制之外


11. 完整的提交示例

$ cd /path/to/your/directory/

$ git init

$ git remote add origin <repository URL>

$ git config --global user.name "Your Name"

$ git config --global user.email "you@example.com"

$ git add <filename>

$ git commit -m "Your commit message"

$ git push -u origin <branch name>



参考文献:

【1】 郭霖. 第一行代码. 人民邮电出版社,2014

【2】 Todd Sproull(2017). Git. Rapid Prototype Development and Creative Programming course Wiki website