Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

git使用 #8

Open
ahaow opened this issue Mar 16, 2019 · 0 comments
Open

git使用 #8

ahaow opened this issue Mar 16, 2019 · 0 comments

Comments

@ahaow
Copy link
Owner

ahaow commented Mar 16, 2019

本地库和远程库

1、团队内部协作

2、跨团队协作

git命令行操作

1、本地库操作

1.1、git init 生成一个.git文件夹

1.2、设置签名
		
	形式:
		用户名:tom,
		Email地址:goodMorning@qq.com
	作用:
		区分不同开发人员的身份
	辨析:这里设置的签名和登录远程库(代码托管中心)的账号,密码没有任何关系
	命令:
		项目级别:仅在当前本地库范围内有效;
			git config user.name hanzo
			git config user.email ahao72@qq.com
			查看:cat .git/config	

		系统用户级别:登录当前操作系统的用户范围

			git config --global user.name hanzo
			git config --global user.email ahao72@qq.com	

1.3、git status // 查看状态

1.4、git add [文件名]  // 添加某个文件到暂存区 / git add --all 添加所有文件

1.5、git rm --cached [文件名]  // 从暂存区移该文件

1.6、git commit -m ""我提交了xx文件,将XX功能做好了" [文件名]  // 将该文件从暂存区提交到本地仓库, 也可以不跟文件名

实现版本的前进和后退

1、版本的历史记录 

	git log
	git log --pretty=oneline
	git log --oneline
	git reflog

2、前进后退

	2.1、基于索引符号操作[推荐]

		git reset --hard [07e942a索引符号]

	2.2、使用^符号,只能后退;
		
		git reset --hard HEAD^ // 几个^符号就可以回退几个版本

	2.3 使用~符号,只能回退

		git reset --herd HEAD~3 // 回退3个版本 

3、reset命令三个参数对比
	
	--soft: 仅仅在本地库移动HEAD指针
	--mixed: 仅仅在本地库移动HEAD指针,重置暂存区
	--hard: 仅仅在本地库移动HEAD指针,重置暂存区,重置工作区

删除文件并找回

1、通过回退版本找回文件; 

	首先我们在工作区删除了一个文件后,应该再add将新的文件目录的文件重新放在暂存区,然后commit到本地仓库;
	当我们想找回文件时,通过log历史记录来查找上一次我提交“删除文件”的历史记录,通过版本回退来进入之前的那个版本,然后在本地又会有刚刚删除的那个文件了;、

2、当你没有将文件commit到本地仓库的时候(还在暂存区),将文件删除了,可以通过 git reset --hard HEAD

比较文件差异

当你在工作区修改了文件后,通过 git diff 命令可以进行比较

git diff [文件名]:将工作区和暂存区的文件进行比较;

git diff [本地库历史版本] [文件名]:将工作区的文件和本地仓库的文件进行比较;

git diff 不带文件名比较多个文件

分支

在版本控制过程中,使用多条线同时推进多个任务

分支的作用

  1. 同时并行推进多个功能开发,提高开发效率;
  2. 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分支删除重新开始即可;

分支操作

  1. git branch -v // 查看分支
  2. git branch [分支名] // 创建分支
  3. git checkout [分支名] // 切换分支
  4. 合并分支:
    1. // 例如我在 创建了一个xxx分支 并修改内容然后commit在这个分支上,然后我想将该分支的内容 和 主分支(master)进行合并;
    2. 第一步:切换到接受修改的分支上(被合并的分支名);
    3. 第二步:执行merge命令; git merge [有新内容的分支名];

  1. 解决冲突
    1. 编辑文件,删除特殊符号;
    2. 把文件修改到满意的程度,保存退出;
    3. git add [文件名]
    4. git commit -m "日志信息";

// 合并分支失败,需要手动合并;

// git 并没有给我们创建一个新的文件,而是以这种形式来区分的;

// 具体协商将冲突的部分,删除协商的那一段;

// 然后git status

// 继续 git add 该文件

// 冲突解决

本地库与远程库交互

1、创建目录,git init 初始化git仓库,创建一个文件,git add 添加到暂存区,git commit 添加到本地仓库;

2、创建远程库

3、推送操作 git push origin[别名] master[分支名]

4、克隆操作 git clone [远程地址]

命令效果

- 完整的把远程库下载到本地;
- 创建origin远程地址别名;
- 初始化本地库;

5、邀请别人进入团队

5.1 当别人同意之后,他clone远程库,修改文件内容,再add commit , 然后push 就不会有错误了;

5.2 我要通过 git pull从远程库拉取,从而在本地获取最新内容;

5.3 拉取 git pull origin master

		pull = fetch + merge
		git fetch [远程库地址别名] [远程分支]
		git merge [远程库地址名 / 远程库分支名]

5.4 解决冲突

	1、如果不是基于github远程库的最新版所做的修改了,不能推送,必须先拉取;
	2、拉取下来后如果进入冲突状态,按照“分支冲突解决”操作解决即可;

6、跨团队协作

  1. 先从“小明”远程库 Fork一份,到自己的远程库;
  2. 在自己的远程库 通过clone到本地,然后修改,add,commit ,push到自己的远程库;
  3. 通过pull request

  1. 最后 git pull origin master 拉取到本地 获取最新内容;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant