Java教程

Git介绍和Git指令

本文主要是介绍Git介绍和Git指令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Git学习 : https://git-scm.com/book/zh/v2

1. Git介绍

1.1 GitHub于SVN

 

假设SVN服务器没了,那你丢掉了所有历史信息,因为你的本地只有当前版本以及部分历史信息。

假设GitHub服务器没了,你不会丢掉任何git历史信息,因为你的本地有完整的版本库信息。你可以把本地的git库重新上传到另外的git服务商。

 

1.2 git三个阶段及三个状态

① git拥有三个阶段

  • 工作区: 是对项目的某个版本独立提取出来的内容,放在本地磁盘上供你使用或修改
  • 暂存区: 是一个文件,保存了下次将要提交的文件列表信息
  • git仓库: 目录是用来保存项目的元数据和对象数据库的地

② git拥有三个阶段

 

  • 已修改:表示修改了文件,但还没有保存到数据库中。
  • 已暂存:表示对一个已修改的当前版本做了标记,使之包含在下次提交的快照中。
  • 已提交:表示数据已经安全地保存在本地数据库中。

③ 具体介绍

  • 如果git目录中保存着特定版本的文件,就属于已提交状态。
  • 如果文件已修改并且放到了暂存区,就属于已暂存状态。
  • 如果自上次检出作了修改但还没有放到暂存区域,就是已修改状态。

 1.2 Git 的基本工作流程

  1. 在工作区中修改文件。

  2. 将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。

  3. 提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录。

 

2. Git命令

  • Workspace: 工作区
  • Index:暂存区
  • Repository:本地仓库区
  • Remote:远程仓库区

 

 

2.1 Git的一般工作流程

 

步骤

命令

去对应的Bitbucket上面创建一个自己的branch,假设命名为test_branch  
在本地创建一个文件夹存放拉下来的代码 git clone
创建并切换到命名为test_branch的分支进行开发工作 git checkout -b test_branch
开发  
查看更新内容 git status
把更新内容存放到暂存区

git add .

把暂存区的内容提交 git commit -m '本次提交的命名'
检查一下是否提交成功 git status
将本地仓库推送到远程仓库 git push origin test_branch

2.2 Git命令总结

 

   

2.1 新建代码库

git  init 在当前目录下新建一个代码库
git  init [project-name] 新建一个目录,将其初始化未Git仓库
git clone [url] 下载/克隆一个项目

2.2 配置

git config --list 显示当前的Git配置
git config  -ee[ --global] 编辑Git配置文件

git config  -ee[ --global] user.name "[name]" /  git config  -ee[ --global] user.email "[name]"

设置代码时的用户信息

2.3 增加/删除文件

git  add [file-name] 添加指定文件到暂存区
git  add [dir-name] 添加指定文件到暂存区,包括子目录
git  add  添加当前目录所有文件到暂存区
git  rm [file-name] 删除工作区文件
git  rm --cached  [file-name] 删除暂存区或分支上的文件
git  mv  [file-orginal-name][file-new-name] 改文件名

2.4 代码提交

git commit -m [message] 提交暂存区文件到本地仓库区
git commit [file-name] -m [message] 提交暂存区指定文件到本地仓库区
git commit -v 提交时显示所有diff信息
git commit  --amend -m [message] 使用一次新的commit,代替上一次提交

2.5 分支

git branch 列出所有分支
git branch -r 列出所有远程分支
git branch [branch-name] 创建一个分支
git checkout -b [branch-name] 创建一个分支,并切换到该分支
git checkout [branch-name] 切换到指定分支,并更新工作区
git checkout -  切换到上一个分支
git merge [branch-name] 合并指定分支,并更新工作区
git branch  -d [branch-name] 删除分支

git branch -r  -d [branch-name] / git branch origin  --delete [branch-name]

删除远程分支

2.6 标签

git tag 列出所有标签
git tag [tag-name] 在当前的commit新建一个tag
git tag [tag-name] [commit-id] 在指定的commit新建一个tag
git tag -d  [tag-name] 删除本地tag
git tag origin:refs / tags/  [tag-name] 删除远程tag
git show [tag-name] 查看tag信息
git push [remote] [tag-name] 提交指定tag
git checkout -b  [branch-name]  [tag-name] 新建一个分支,指向某个tag

2.7 查看信息

git status 显示变更的文件
git log 显示当前分支的版本信息
git log – state 显示commit历史,以及每次commit变更时产生的文件
git log 5 --pretty=online 显示过去5次提交
git diff 显示暂存区和工作区的差异
git diff --cached [file-name] 显示暂存区和本地工作区的差异
git diff HEAD 显示工作区和当前分支最新的commit之间的差异
git relog 显示当前分支的最近几次提交

2.8 远程同步

git fetch 下载远程仓库时有所变动
git remote -v 显示所有远程仓库
git remote show [remote-name] 显示某个远程仓库的信息
git remote add [shortname] [url] 增加一个新的远程仓库,并命名
git pull [remote-name] [branch-name]  取回远程仓库的变化,并于本地分支合并
git push [remote-name] [branch-name]  上传本地指定的分支到远程仓库
git push [remote-name] --force 强行推送当前分支到远程仓库
git push [remote-name] --all 推送所有的分支到远程仓库

2.9 撤销

git checkout  --[file-name] 文件工作区修改全部撤销
git checkout  回复所有暂存区的文件到工作区
git reset --hard HEAD 将暂存区与工作区,与HEAD提交的保持一致
git reset --hard [commit-id] 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
git reset --hard HEAD^ 回退到上一个版本
git reset HEAD 暂存区和HEAD的提交保持一致

2.10 其他

   

3. 分支冲突的产生与解决

3.1 冲突的发生

在两个分支上都对同一个文件进行修改并且还都进行了提交

实际上,push操作即是将本地代码merge到远端库分支上。关于push和pull其实就分别是用本地分支合并到远程分支 和 将远程分支合并到本地分支,所以这两个过程中也可能存在冲突。

在这里插入图片描述

3.2 冲突的解决

  情景 解决方法
1 多个分支代码合并到一个分支时 在当前分支上,直接修改冲突代码--->add--->commit
2 多个分支向同一个远端分支推送代码时 在本地当前分支上,修改冲突代码--->add--->commit--->push
这篇关于Git介绍和Git指令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!