git使用(二)

git 从分支上创建一个分支

  1. 先克隆一个项目
    git clone git的ssh链接
  2. 查看当前分支
    git status
  3. 切换到父分支中
    git checkout 分支名
  4. 拉取最新的代码
    git pull origin 分支名字
  5. 创建新的分支
    git checkout -b 新分支的名字
  6. 将分支推送到线上
    git push origin 分支名字

分支相关

  1. 查看分支:
    git branch
  2. 创建分支:
    git branch <name>
  3. 切换分支:
    git checkout <name>
  4. 创建加切换分支:
    git checkout -b <name>
  5. 合并某分支到当前分支:
    git merge <name>
  6. 关联远程分支:
    git pull origin <name>
  7. 删除分支:
    git branch -d <name>
  8. 删除远程分支:
    git push origin --delete <name>

git删除指定分支

  1. 在本地建立文件夹
  2. 将该分支clone下来
  3. git clone -b 该分支名 地址
  4. git branch -a (查看远端分支)
  5. git checkout -b 别的分支
  6. git branch -D 要删除的分支
  7. git push origin --delete 要 要删除的分支
  8. 完成

gitlab创建新项目

  1. 登录gitlab网站自己找到新建项目
  2. 在git bash的窗口输入ssh-keygen
  3. 一般在c盘的用户文件夹下会出现一个.ssh文件 复制文件中的id_rsa.pub内容
  4. 在git中选择settings 将复制的内容配置进去,点击add keys
  5. 在git Bash窗口设置git的用户名和邮箱 git config --global user.name 你的名字 git config --global use.email 你的邮箱
  6. 进入到本地项目中,右键此处进入git Bash
    输入git init初始化仓库
  7. 将本地仓库和远程仓库建立连接 git remote add origin git@code.choerodon.com.cn:25371/sss.git
  8. 将文件加入到缓冲区

    git add .
    (这个点等于当前路径下的所有文件,不能省略)
  9. 将文件提交到版本库
    git commit -m "提交描述"(这个-m后面的东西建议不要省略有利与回滚的时候能判断是第几次提交)
  10. 将本地的master分支推送到origin主机
    git push -u origin master

远程仓库中项目拉取

  1. 拉取代码
    git clone git地址
    -- 默认拉取得是master分支

  2. 若需要切换分支
    使用git branch -a
    会出现分支列表
    直接切换到对应的分支

    git checkout origin/experimental


常见错误

出现The file will have its original line endings in your working directory错误

输入git config core.autocrlf false

git push报HTTP Basic: Access denied 错误

原因:本地git配置的用户名、密码与gitlabs上注册的用户名、密码不一致 解决方案: 如果账号密码有变动 用这个命令 git config –system –unset credential.helper 重新输入账号密码 应该就能解决了

git报错:'fatal:remote origin already exists'怎么处理

描述:可能会在上述步骤第7步之后出现,原因是重复建立远程仓库连接 解决方案:

  1. 先删除
    git remote rm origin
  2. 再执行添加
    (上述第7步)

Error:(1, 0)Your project path contains non-ASCII characters. This will most likely causethe build to fail on Windows. Please move your project to a differentdirectory.

描述:编码错误 大概率是保存路径下出现了中文


git基本指令

  1. git status
    这个指令可以让我们时刻掌握仓库当前的状态,比如文件的修改状态
  2. git diff
    如果已经记不清上次修改的内容,这个时候需要用git diff命令
  3. git log
    如果提交了多次文件,查看历史记录,这个时候便可以使用这个指令 来分别查看各个版本有何差别,注 意这个地方将会在命令行出现各种描述,其中包含文件唯一的commit id值,作者,版本创建时间,版本描述.(所以这里要强调一点,使用commit的时候,一定要添加描述,以免日后忘记)
    如果嫌弃输出信息太多,可以试试加上 --pretty=oneline
  4. git reset --hard HEAD^
    commit id都是唯一值,在git中,用head来标识当前版本,HEAD来表示上一个版本,HEAD^表示上上个版本.但是如果回退到上个版本之后,最新的一个版本在使用git log打印的时候发现,最新的版本好已经不见了 如果想要回到最新的某个版本这个时候commit id的作用便体现出来了,使用git rest --hard [commit id]便能跳转到最新的版本
  5. git reflog
    如果回退了版本,也不知道最新的版本的commit id,这个时候就可以使用git reflog 它记录了每一次的git指令

管理修改的概念

第一次修改 -> git add -> 第二次修改 -> git commit

当出现这种情况的时候,第一次使用git add之后,工作区第一次修改之后被放入暂存区,但是工作区第二次修改并没有放入暂存区,所以git commit只负责把暂存区的修改提交了,也就是第一次修改被提交了,第二次修改没有提交.

使用git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本的区别. 如果是 第一次修改 -> git add -> 第二次修改 -> git add -> git commit

这种操作就相当与把两次修改合并后一块提交了. 总结:每次修改,如果不用git add到暂存区,那就不会加到commit中了.


撤销修改

  1. git checkout -- [filename]
    如果在工作区修改了一堆东西,这个时候一点一点找又不方便找出来,这时候使用该指令便可把工作区全部撤销,
  • 这个时候有两种情况:
  • 一种是修改之后没有放到暂存区,这个时候撤销便是回到了和版本库一模一样的状态
  • 一种是已经添加到暂存区后,又做了修改,这个时候撤销是回到暂存区的状态
    ps:总之,这个指令就是让文件回到最近一次git commit 或者git add的状态.
  1. git reset HEAD [filename]

    如果修改过内容后已经添加到暂存区了,暂时还没有提交,这个时候使用这个指令便可以把暂存区修改撤销掉,重新放回工作区

如果已经提交到版本库,可以使用上文提到的版本回退,如果你甚至提交到了远程仓库,恭喜你!你没了!


删除文件

通常情况直接使用rm [filename]从资源管理器上直接删除文件了,删除过文件之后git status就能之间看出来文件有哪些差别 现在又两个情况

  1. 确实要从版本库中删除该文件
    那就用命令git rm删除,并且git commit现在文件就从版本库中被删除了
  2. 如果删除错了,直接使用上文提到的git checkout -- [filename]便可以用版本库里面的版本替换工作区的版本,无论是删除还是修改,都可以一键修改

额外知识

关联远程仓库之后,origin就是远程仓库的名字,这是git的默认叫法,当把本地库的内容推送到远程的时候,用git push命令,实际上是把当前分支master推送到远程仓库,如果使用-u这个参数,还会把本地的master分支和远程的master关联起来,以后推送和拉取就可以简化命令

从现在起 只要做了本地做了提交,就可以通过命令: git push origin master把本地master分支的最新修改推送到github

通过ssh支持的原生git协议速度最快

posted @ 2019-08-19 11:56  南风有时起  阅读(135)  评论(0编辑  收藏  举报