Git

作者: 我的白衣年代 | 来源:发表于2018-01-01 21:16 被阅读0次

Git


开始大量写代码做自己的项目、实现想法后,越来越觉得需要一个好的版本管理器来管理自己的代码。Git是一个大家都推荐的版本管理器,所以我也开始自己摸索。在别人那里看了学习了命令后,在用的过程中总是会忘记。所以我在这里把自己用过的命令总结一下,在自己忘记后好回来复习。

Git 连接 Github

1、 配置本机git

$ git config --global user.name "name"
$ git config --global user.email "your-email"

2、 生成密钥

$ ssh-keygen -t rsa -C "your-email"

3、 提交密钥

$ /home/linux/.ssh/id_rsa.pub #Linux 系统密钥位置
$ /c/User/admin/.ssh/id_rsa.pub #Windows 系统密钥位置

复制密钥,到 github网页中登录自己的账号,然后在 setting 里找到 SSH KEY ,新建 SSH KEY 将复制的密钥加入

4、 检验是否链接上了github

$ ssh git@github.com
//正常情况下,回显如下
PTY allocation request failed on channel 0
Hi plinx! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

如果返回错误

$ ssh: connect to host ssh.github.com port 22: Connection timed out

那么

$ cd ~/.ssh
$ touch config

.ssh 目录下创建一个 config 文件,输入如下内容:

Host github.com
User "your-email"
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443

再进行测试是否链接上github.com

$ ssh -T git@github.com

Git 命令

  • 克隆项目

     $ git clone https://github.com/program owner/program.git
    
  • 提交更改

     $ git add file  # file为你要提交到暂存区的文件
     $ git commit -m "note" # 从暂存区提交到版本库,并添加操作 注释 note
     $ git diff HEAD -- file #查看工作区和版本库里最新版本的区别 
    
  • 撤销修改

     $ git checkout -- file
    
  • 关联远程仓库(本地库可以和多个远程库关联)

      $ git remote #查看当前配置有哪些远程仓库,列出已经存在的远程分支
      $ git remote add learngit   git@github.com:michaelliao/learngit.git  # 关联github
      $ git remote add learngit git@gitee.com:michaelliao/program.git   # 关联码云
      $ git remote -v # 查看远程库信息
      $ git remote rm learngit # 删除已关联的远程库 github
    
  • 分支

    首先,创建 laptop 分支,然后切换到该分支

     $ git branch laptop
     $ git checkout laptop   #当然,也可以用一行命令代替  git checkout -b laptop
    

    然后,在分支 dev 下进行各种文件操作,将操作提交到版本库,分支 dev 工作完成后切换回 master 分支

     $git checkout master
    

    现在,将分支 dev 工作合并到 master 分支:

     git merge dev # git merge 命令用于合并指定分支到当前分支
    

    合并完成后,就可以放心删除 dev 分支了:

     git branch -d dev
    

    删除后,查看 branch, 就只剩下 master 分支了:

     $ git branch
    

    git log --graph 可以查看分支合并图

  • Bug 分支

    当程序遇到bug时,可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。

    比如,你临时接到一个立即修复代号为101的bug任务,你想创建一个分支 issue-101 来修复它, 但你手头正在 dev 分支上进行的工作还没提交,而且工作只进行到一半。

    这时, git stash 可以把当前工作现场储藏起来,等以后恢复现场后继续工作

    回到 dev 后,用 git stash list 命令查看工作现场。

    git stash apply stash@{n} #对于多次stash,恢复指定的工作现场,stash并不删除, 可用 git stash drop 删除
    git stash pop #恢复现场,同时删除stash内容

使用码云 gitee.com

Github 上提供了 免费的 公有 Git 仓库,私有库则需付费。国内 Git 托管服务 码云 则提供了免费的 Git 仓库,而且还包含免费私有库。 此外,还集成了代码质量检测,项目演示等功能。对于团队协作开发,码云还提供了项目管理、代码托管、文档管理的服务,5人以下小团队免费。

  • 远程库分支管理

    对于一个项目开发,远程库可以创建两个分支,其中包括一个 master 分支 和 一个测试分支,master 分支用于发布稳定版本,所以最好给予 protect branch 保护分支权限,项目管理员来推送稳定版。 测试分支用于正常开发,项目成员均在该分支上进行开发,待测试通过后由管理员将该分支 mergemaster 分支。

    git branch -a 可以查看本地及远程分支。比如远程库的测试分支名为 test,那么项目成员从远程库拉取代码:

     $ git pull <local branch name> test
    

    工作完成后进行推送

     $ git push <local branch name> tests
    

Git remote 用法

  • git rename <old> <new>

相关文章

网友评论

      本文标题:Git

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