美文网首页
Github 基础知识

Github 基础知识

作者: 致在路上的我们 | 来源:发表于2018-02-05 10:40 被阅读0次

    1.名词解释
    fork:意思是从别人的代码库中复制一份到你自己的代码库,与普通的复制不同,fork包含了原有库中的所有提交记录,fork后这个代码库是完全独立的,属于你自己,你可以在自己的库中做任何修改,当然也可以通过Pull Request向原来的库提交合并请求。
    watch: 相当于收藏,关注后,代码库有新的commit, 你就会收到通知。
    star: 相当于关注,方便下次查找作者的项目。

    2.git 指令

    3.远程数据库、本地数据库

    1. 分支: Merge分支 Topic分支
      Merge分支是为可以随时发布release而创建的分支,它还能作为Topic分支的源分支使用。
      Topic分支是为了开发新功能或修复Bug等任务而创建的分支,若要同时进行多个的任务,请创建多个Topic分支。

    指令学习

     git init
    
    在桌面创建一个文件(lianxi),在此路径下创建一个空的git本地仓库
    Initialized empty Git repository in /Users/ML/Desktop/lianxi/.git/
    

    lianxi下创建一个xxx.txt文件,然后提交

    git add xxx.tex
    git commit -m "first commit"
    
    [master (root-commit) 5389ca9] first commit
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 xxx.txt
    
    

    创建名为issue1的分支

    git branch issue1
    
    不指定参数直接执行branch命令的话,可以显示分支列表,前面有*的就是现在的分支
      issue1
    * master
    

    若要在新建的issue1分支进行提交,需要切换到issue1分支

    切换到issue1分支
    git checkout issue1
    
    Switched to branch 'issue1'
    

    在checkout命令中指定 -b选项执行,可以创建分支并进行切换

    git checkout -b <brabch>
    

    在切换到issue1分支的状态下提交,历史记录会被记录到issue1分支,在xxx.txt添加add命令说明后再提交(add 把变更录入到索引中)

    git  add xxx.txt
    git commit -m "添加add的说明"
    
    [issue1 a1fa976] 添加add的说明
     1 file changed, 1 insertion(+)
    

    向master分支合并issue1分支的修改, 执行marge命令以合并分支

    git marge <commit>
    该命令将指定分支导入到HEAD指定的分支,先切换master分支,然后把issue1分支导入到master分支
    git checkout master
    
    Switched to branch 'master'
    
    git merge issue1
    
    Updating 5389ca9..a1fa976
    Fast-forward
     xxx.txt | 1 +
     1 file changed, 1 insertion(+)
    

    既然issue1分支的内容已经顺利地合并到master分支了,现在可以将其删除了

    git branch -d issue1
    
    Deleted branch issue1 (was a1fa976).
    

    接下来创建2个分支来尝试并行操作
    首先创建issue2分支和issue3分支,并切换到issue2分支

    git branch issue2
    git branch issue3 
    git checkout issue2
    
    * issue2
      issue3
      master
    

    在issue2分支的xxx.txt 添加commit命令的说明提交

    git add xxx.txt
    git commit -m"这是说明"
    
    [issue2 af79123] 这是说明
     1 file changed, 1 insertion(+)
    

    接着,切换到issue3分支

    git checkout issue3
    git add xxx.txt
    git commit -m "说明"
     这样,添加commit的说明的操作,和添加pull的说明的操作就并行进行了。
    

    解决合并的冲突
    把issue2分支和issue3分支的修改合并到master
    切换master分支后,与issue2分支合并

    git checkout master
    git merge issue2
    
    Updating b2b23c4..8f7aa27
    Fast-forward
     xxx.txt |    2 ++
     1 files changed, 2 insertions(+), 0 deletions(-)
    

    接着合并issue3分支

    git merge issue3
    
    Auto-merging myfile.txt
    CONFLICT (content): Merge conflict in myfile.txt
    Automatic merge failed; fix conflicts and then commit the result.
    
    1.png

    自动合并失败,由于在同一行进行了修改,所以产生了冲突,这时xxx.txt内容如上
    在发生冲突的地方,git生成了内容的差异,请做一下修改


    1.png

    然后重新提交

    用rebase合并
    合并issue3的时候,使用rebase可以使提交的历史记录显得更简介,现在暂时取消刚才的合并

    git reset --hard HEAD~
    

    切换到issue3分支后,对master执行rebase

    git  checkout issue3
    git rebase master
    
    

    和merge时的操作相同,修改在xxx.txt发生冲突的部分。
    rebase的时候,修改冲突后的提交不是使用commit命令,而是执行rebase命令指定 --continue选项。若要取消rebase,指定 --abort选项

    git add xxx.txt
    git rebase --continue
    

    rebase的时候,修改冲突后的提交不是使用commit命令,而是执行rebase命令指定 --continue选项。若要取消rebase,指定 --abort选项

    标签

    添加标签
    git tag <tagname>
    查看标签列表
    git tag
    如果在log命令添加--decorate选项执行,可以显示包含标签资料的历史记录
    git log --decorate
    
    commit 163f3c574865c36b9216d5bf9bbfd190d60a067b (HEAD -> issue3, tag: apple, master)
    Merge: a1fa976 af79123
    Author: shenyuanjiang <1223551803@qq.com>
    Date:   Fri Feb 2 10:13:05 2018 +0800
    
        解决冲突后的提交
    
    commit af791230eccc82a26eac60f3bae94c1fff9e06f8 (issue2)
    Author: shenyuanjiang <1223551803@qq.com>
    Date:   Fri Feb 2 09:27:11 2018 +0800
    
        这是说明
    
    commit a1fa976a50f3157283c647ed1612f0cae054d3ba
    Author: shenyuanjiang <1223551803@qq.com>
    Date:   Thu Feb 1 13:10:57 2018 +0800
    
        说明
    
    commit 5389ca9f8aad16a11e6cfd53cc11e0a46a476edb
    Author: shenyuanjiang <1223551803@qq.com>
    Date:   Thu Feb 1 11:55:52 2018 +0800
    添加注释标签
    git tag  -a <tagname>
    标签列表
    git tag -n
    删除标签
    git tag -d <tagname>
    
    改写提交
    git revert  HEAD
    

    另加: git log

    提交版本记录
    a42e94c238dcb1ede23c2f73668ab0bace5fd49b 指的是版本号SHA1计算出来的一个非常大的数字,用十六进制表示

    相关文章

      网友评论

          本文标题:Github 基础知识

          本文链接:https://www.haomeiwen.com/subject/rkwkzxtx.html