Git基本操做

1.学习教程                   github.com/geeeeeeeeek…

2.基本概念

  • git:分布式版本管理工具
  • github:一个网站,大型代码托管平台
  • gitlab:基于git的代码管理软件
  • code review:代码评审 Code Review主要分两类:一个就是技术专家人工review;第二个就是借助程序自动检查代码。在 GitHub上你们能够到Market Place找找质量相关的app,好比代码静态检查等app,让它在pull request的时候发挥做用,帮助团队作review
  • 集成分支:通常是master分支
  • pull requests:是从本身的分支合并代码到集成分支
  • release项目的发布
  • jenkins的使用,至关于redis,须要本身搭建本地服务进行管理使用
  • 暂存区,不是正式提交

3.github开源项目搜索技巧

  • Advanced search
  • 关键词 in:readme stars:>1000

4.git的安装和配置

  • 安装: git-scm.com/book/en/v2/…
  • 配置用户名和密码: git config --global user,name 'user.name'/ git config --global user.email 'user.email'
  • 查看配置:git config --global --list

5.git的基本命令

  • 1.已有项目须要归入git管理--cd 项目全部文件夹:git init
  • 2.新建项目进行git管理 -- cd 某个文件夹/git init 项目名/cd 项目名
  • 3.git add 文件名---将文件提交到暂存区
  • 4.git commit -m "进行变动说明"
  • 5.git status/git log
  • 6.git add -u表示已经被git跟踪的更改能够一会儿所有放在暂存区提交
  • 7.git add -u:将文件的修改、文件的删除,添加到暂存区。 git add .:将文件的修改,文件的新建,添加到暂存区。 git add -A:将文件的修改,文件的删除,文件的新建,添加到暂存区。 工做中通常是用到 git add . 或者 git add -A, git add -A相对于git add -u命令的优势 : 能够提交全部被删除、被替换、被修改和新增的文件到数据暂存区,而git add -u 只能操做跟踪过的文件 git add -A 等同于git add -all
  1. .git文件内容:HEAD:表示当前工做的分支config:配置文件,local用户名 refs/heads:存放分支
  2. head会指定到某一个commit,包括指向新得分支得commit 10.git diff head head^ 当前head和上一次head的比较 11.指定不须要用git管理的文件----在仓库中建立.gitignore文件

6.文件重命名

  • 1.原来的作法,首先工做区重命名,而后提交暂存区,删除暂存区原来的文件git rm 文件名
  • 2.git reset --hard 暂存区工做目录全部的变动将会清除
  • 3.直接使用git mv readme readme.md

7.日志操做

  • 1.git log -n4 --oneline最近4次操做
  • 2.git log --oneline --all 全部的
  • 3.git log --oneline --all --graph 图形化
  • 4.本节的一些演示命令总结 • git log --all 查看全部分支的历史 • git log --all --graph 查看图形化的 log 地址 • git log --oneline 查看单行的简洁历史。 • git log --oneline -n4 查看最近的四条简洁历史。 • git log --oneline --all -n4 --graph 查看全部分支最近 4 条单行的图形化历史。 • git help --web log 跳转到git log 的帮助文档网页

8.分支管理

  • 1.git branch -v 查看版本分支
  • 2.git branch -av 查看包括远程分支
  • 3.git checkout 分支名:切换分支
  • 4.建立新分支:git checkout -b 分支名
  • 5.切换分支:git checkout master 查看所有分支:git branch -av 删除分支:git branch -d 分支名 (-D:强制删除) 6.分支的做用:前端和后台分为不一样的分支 7.图形化管理 gitk ---author和committer不一样之处在于:从master复制到tmp分支,会保留master的做者

9.提交修改

  • 1.针对最后一次的提交修改message ----- git commit --amend
  • 2.针对老旧的commit的message进行修改------ git rebase -i 要修改父节点的id

10.暂存区/工做区/head

  • 1.暂存区和head比较:git diff --cached
  • 2.工做区和暂存区比较:git diff 查看全部文件的差异 /git diff --文件名 查看指定文件 工做区和暂存区的差异
  • 3.暂存区覆盖工做区的修改----暂存区的内容都不要:git reset HEAD
  • 4.暂存区覆盖工做区的修改--git checkout
  • 5.取消暂存区部分文件的更改--git reset HEAD --文件名
  • 6.删除最近几回提交 --- git reset--hard hash值(hash值是要删除提交上一次的hash值)

11.github的使用

  • 1.建立分支,修改内容,提交请求,合并分支
  • 2.公私钥的建立--查看有没有设置公私钥-- ls -al ~/.ssh
  • 3.在本地设置密钥:ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • 4.公钥:~/.ssh/id_rsa.pub ---私钥:~/.ssh/id_rsa
  • 5.远端站点---git remote add github(站点名) github.com/git201909/g…
  • 6.fetch:从远端拉数据到本地 /push:将本地数据上传到远端
  • 7.删除远端站点:git remote remove 站点名
  • 8.从本地仓库push到远端仓库---git push 站点名 --all
  • 9.git pull 将远端分支的内容拉到本地,而后与本地分支合并
  • 10.将远程代码fetch到本地 git fetch 站点名 分支名
  • 11.将远端master分支合并到本地分支 git merge github(站点名)/master(分支名)
  • 12.当本地master分支和远端分支不同时,可是想要将本地master 分支 merge到远端分支---git merge --allow-unrelated-histories github(站点名)/master(远端分支名)
  • 13.将本地master分支push到远端分支---git push github(远端站点名) master
  • 14.git remote -v 查看远程版本库信息 git remote add githup 添加githup远程版本库 git fetch githup 拉取远程版本库 git merge -h 查看合并帮助信息 git merge --allow-unrelated-histories githup/master 合并githup上的master分支(两分支不是父子关系,因此合并须要添加 --allow-unrelated-histories) git push githup 推送同步到githup仓库 15.fast-forward:两个分支合并时,target分支若是是source分支的祖先,那么这两个分支就是 fast-forword的关系

12.分支合并冲突问题

  • 1.当两我的同时对github上master分支进行修改的时候,修改不一样文件---两个用户同时获取拉取了master的代码--一个用户修改文件已经提交,另外一个用户再次push的时候会出现提交异常

<1>首先:1.将远端分支fetch下来--git fetch github <2>再次:2.合并分支 <3>最后:3.push分支到远程前端

  • 2.当两我的同时修改了一个分支的同一个文件不一样区域--一我的修改以后push,另一我的push的时候会发送冲突

<1>1.将远端fetch下来,而且merge本地和远端---git fetch github <2>git merge 远程分支,将远程分支和本地分支合并 <3>push到远程:git push githubgit

  • 3.当两我的同时修改了同一分支的同一文件的同一区域

<1>github fetch github <2>merge远程分支,合并分支的时候会发生冲突,解决冲突,修改以前修改的文件,而后提交github

git push -f 协同工做通常禁止使用web

相关文章
相关标签/搜索