git入门

一、初始化

在github上创建repository后,如何将本地代码关联上远程仓库呢?

create a new repository on the command line	--如果新建仓库

echo "# git-demo" >> README.md 	--在项目中添加README.md文档
git init	--初始化本地仓库
git add README.md	--README.md添加到INDEX区(什么是INDEX区?请看下面原理图)
git commit -m "first commit"	--提交到本地仓库
git remote add origin https://github.com/gxdbox/git-demo.git	--本地仓库关联远程仓库
git push -u origin master	--将本地代码推送至远程仓库

push an existing repository from the command line 	--如果已存在仓库
git remote add origin https://github.com/gxdbox/git-demo.git	--本地仓库关联远程仓库
git push -u origin master	--将本地代码推送至远程仓库

二、原理图

在这里插入图片描述
参数解释

  1. workspace:本地工作区
  2. Index:缓存区
  3. Repository:本地仓库
  4. Remote:远程仓库

三、分支

  1. 常用命令:
git branch gxd2 --注意:创建的是本地分支(如有必要,你可以将分支同步到远程仓库)
git checkout -b test01	--相当于git branch test01 + git checkout test01
git push --set-upstream origin test01  --将本地分支推送到远程仓库。
	1. origin 表示远程仓库
	2. test01 表示分支名称
git branch -r 查看远程分支
git branch 查看当前分支
  1. 如何拉取分支上的代码?
git branch -a --查看所有分支,选中你所要的分支
git checkout remotes/origin/gxd --切换分支
  1. 如何提交本地代码到远端分支?
git push <远程主机名> <本地分支名>:<远程分支名>
举例:git push -u origin tst:tst
git push  如果一开始是通过clone下来的代码,就可以直接push
  1. 如何将分支的新内容merge到master上?
1.将分支merge之前,确保分支为最新版本,所以,需要先切换分支,然后更新代码
git checkout test01 --切换到分支上。代码也会随之改变
git pull  --更新代码

2. git checkout  master  --切换到master上
3. git merge test01  --将test01分支合并到master上
4. git push -u origin master  -将本地master代码push到远端
反过来,如果是将master的内容merge到分支上,道理一样,只是调换顺序而已
  1. 如何切换分支
error: Your local changes to the following files would be overwritten by checkout:
        .idea/workspace.xml
Please commit your changes or stash them before you can switch branches.
Aborting
在切换分支之前,请先提交所有文件到本地仓库,否则会切换失败。

git add . 添加所有
git commit -m "ceshi"
git checkout master --在你做checkout之前,默认已经clone了一份代码到你的本地仓库,当你checkout切换时,你的代码也会跟着换

四、标签

  1. 查看标签
- git tag --查看当前标签
- git log --pretty=oneline --abbrev-commit  --找到历史提交的commit id;因为默认标签是打在最新的commit上
- git show <tagname>--查看对应版本
- git checkout <tagname>  --查看对应标签状态
  1. 创建标签
标签默认打在当前版本(打上标签,但此时的标签还在本地,需要你推送到远端仓库)
- git tag <tagname> --创建v1.0.0标签
- git tag -a <tagname> -m "this is message" 	--可以指定标签信息 +commitId
- 
如果你想将标签打在历史上某个版本(打上标签,但此时的标签还在本地,需要你推送到远端仓库)
- git log --pretty=oneline --abbrev-commit--查看历史上的commitId
- git tag -a <tagname> <SHA> -m "<备注信息>"  
	举个例子:git tag -a 1.0.0 0c3b62d -m "Release Edition v1.0.0" --SHA0c3b62d的这次提交打了1.0发行版的tag
  1. 删除标签
git tag -d <tagname>  --删除本地标签
  1. 推送标签至远程
git push origin <tagname>

五、回滚

- 按字符串回滚
git log --pretty=oneline  --查看命令字符串
  --回滚到某个版本git reset --hard 字符串
	举例:git reset --hard 'f7f8833ed851e64dc174b266ac667e1ded0fb002'
	
- 按标签回滚
git tag
git reset --hard 标签名
	举例:git reset --hard v1.0.4

6、代码冲突

Auto-merging src/main/java/com/zjrb/gitdemo/TestController.java
CONFLICT (content): Merge conflict in src/main/java/com/zjrb/gitdemo/TestController.java  --冲突的类
Automatic merge failed; fix conflicts and then commit the result. --正在提交前,请先拉取最新的版本

在这里插入图片描述
两个人修改了同一处代码,如果你不知道该删除哪个,你也可以提交冲突代码,那么,你的另一位同事git pull后,就会得到冲突的代码,把筛选权交给你同事。

git add .
git commit -m "冲突"
git push -u origin 本地分支:远程分支
方法一:舍弃本地代码,远程版本覆盖本地版本
使用这种方法之前,可以先将本地修改的代码备份一下,避免重敲代码。具体命令如下:

$:git fetch --all
$:git reset --hard origin/master
$:git pull

其他

常用命令

- git status --查看状态
- git add --全部提交到缓存区INDEX
	- git add .  --提交全部到缓存区INDEX
	- git add 文件名	 --提交某个文件到缓存区INDEX
- git commit -m "message" --提交文件到本地仓库
- git pull  --从远端仓库拉去代码,也就是更新代码
- history --查看历史
- git clone https://github.com/gxdbox/git-demo.git  --拉取远程代码
- echo "first branch demo" >> branch.txt 将文字写入txt文档中
- gradle clean;如果是gradle项目,提交是需要命令行清除build中的class和jar包,然后在提交代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值