当前位置:   article > 正文

团队开发、代码维护利器——github_项目团队成员贡维护代码库

项目团队成员贡维护代码库

团队开发、代码维护利器——github

前言

github是一种基于git的代码托管平台,我们在本地的电脑上安装上git后,并建立本地仓库,然后与github远程仓库有建立连接,就可以实现代码的上产(push)和下载(pull)。在团队开发过程中,多个成员可以共同向远程仓提交代码,共同维护代码,提高开发效率。既然github是基于git的,那么git是什么呢?git就是一个软件,官方名称是版本控制系统(工具),git学会了github就水到渠成了。

目录

关于git的几个概念

commit (提交)

git的提交是文件历史状态的快照 ,也就是历史仓库。

branch (分支)

Git 中的分支,其实本质上仅仅是个指向 commit 对象的可变指针。Git 会使用 master 作为分支的默认名字。在若干次提交后,你其实已经有了一个指向最后一次提交对象的 master 分支,它在每次提交的时候都会自动向前移动。

Git 是如何知道你当前在哪个分支上工作的呢?其实答案也很简单,它保存着一个名为 HEAD 的特别指针。它是一个指向你正在工作中的本地分支的指针(将 HEAD 想象为当前分支的别名)。

每次提交后 HEAD 随着当前分支一起向前移动 。切换到哪个分支,哪个分支就成为自动向前移动的指针HEAD。

索引

就是一个暂存区,通过git add 将当前目录文件添加到索引。提交文件到历史仓库分两步,先add文件到索引,然后commit将暂存区的文件到历史仓库。

合并

合并分两种情况,fast-forward(快进),分叉合并。前者中两个分支是直系亲属,后者,没有直系关系,但是有共同的祖先。

本地仓操作

  1. 本地建立库(项目)

    mkdir test
    touch readme.md
    git init #初始化
    git status #查看git状态,随时都可以敲
    
    • 1
    • 2
    • 3
    • 4
    • 5
  2. 添加并提交文件

    git add <filename>
    git commit -m "my first commit"
    • 1
    • 2
  3. 新建分支并切换到分支

    git branch <branchname> #新建分支
    git checkout <branchname> #切换分支
    git branch -D <branchname> #删除分支
    • 1
    • 2
    • 3
  4. 打标签

    git tag v1.0 #为当前状态打标签
    git tag #查看所有历史标签
    git checkout v1.0 #切换到v1.0的状态
    • 1
    • 2
    • 3
  5. git常用命令

    diff: 比较 两次提交/两个分支/两个文件 的不同

    git diff <id1> <id2> #比较两次提交的不同,提交的id号可以通过 git log 查看
    git diff <branch1> <branch2> #比较两个分支的不同
    git diff <file1> <file2> #比较两个文件的不同
    • 1
    • 2
    • 3

    checkout: 切换分支/tag/提交 (撤销)

    git checkout v1.0 #切换tag
    git checkout <COMMIT_ID> #切换某次提交之前的状态
    git checkout HEAD~ #撤销最后一次提交
    git checkout <branchname> #切换到分支
    • 1
    • 2
    • 3
    • 4

    stash: 保留当前未完成的工作,用户可以着手去完成别的工作。

    git stash #把当前分支没有commit的代码暂存起来
    git stash list #查看暂存记录
    git stash apply #代码恢复
    git stash drop #删除上一条记录
    • 1
    • 2
    • 3
    • 4

    merge: 合并分支

    
    #切换到主分支,然后将分支1合并进来
    
    git checkout master
    git merge branch1
    
    #注:rebase 也有合并的功能,与merge有所区别. 合并之后有时会有冲突。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  6. 分支管理

    git branch #查看本地分支
    git branch -r #查看远程分支
    git checkout branchName origin/branchName #将远程分支迁移到本地
    
    • 1
    • 2
    • 3
    • 4
  7. 查看所有与本地关联的远程仓

    git remote
    • 1
  8. 远程仓的移除和重命名

    git remote rename <old_name> <new_name> #移除
    git remote rm <name> #重命名
    • 1
    • 2
  9. 撤销:resetcheckout 对比

    reset

    1. 不带路径时,移动当前分支HEAD ,并且有选择的变动工作目录和索引。
    2. 带路径时,用来在从历史仓库中复制文件到索引,不改变当前分支和HEAD指向,不动工作目录(除非使用–hard选项)。

    checkout

    1. 不带路径时,移动HEAD,同时更改索引和工作目录,
    2. 带路径时,将指定的文件从历史提交中恢复到索引和工作目录,不改变HEAD。注意:两种情况都不改变当前分支的指向。
    
    # reset
    
    git reset HEAD~ #移动HEAD和当前分支到上一次提交的节点,即撤销提交,索引改变,但是工作目录不变
    
    # => 还原分支和索引
    
    git reset [HEAD~] <files> #将历史提交中的文件还原到索引,工作目录不变
    
    # checkout
    
    git checkout <branch_name> #切换分支,只改变head指向
    git checkout HEAD~ #将head指向上一次提交的节点,同时恢复索引和工作目录,注意分支指向不动
    git checkout [HEAD~] <files> #将历史提交中的文件还原到索引和工作目录
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    总结:

    1. 如果要撤销本地修改,使用 git checkout [HEAD~] files
    2. 如果要撤销提交,使用 reset。
    3. 如果要重新提交,使用 git commit –amend , 实际上也可以用 reset实现。

与远程仓交互

配置密钥

  • 生成ssh key

    ssh-keygen -t rsa
    • 1

    之后输入三次回车,在用户目录下生成两个文件,id_rsa 和id_rsa.pub

  • 在github添加ssh,将id_rsa.pub的内容复制到github的添加公钥的位置

  • 测试

    ssh -T git@github.com
    • 1

    出现 successful 说明成功。

建立关联

#方式1:克隆远程到本地->建立关联->修改提交
git clone git@github.com:Daibingh/hello.git
#在修改clone的项目后
git push origin master
#方式2:本地有完整项目->与远程仓建立关联->远程本地同步
git remote add origin git@github.com:Daibingh/test.git
git push origin master
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/423735
推荐阅读
相关标签
  

闽ICP备14008679号