Git的用法-Git常用命令-Git冲突处理-Git提交和下载-Git与Github

因为工作需要记录下Git的用法,主要是Git命令行的操作和对Git版本控制器的一些粗浅理解;

本文包括:

Git常识

版本回退

分支合并

使用Github

处理版本冲突


关于Git的几个概念
首先Git是分布式的,没有中央服务器的概念(Github是远程仓库和本地仓库平级);

工作区:
	包含.git(版本信息)目录目录的文件夹,也就是项目根路径;
版本仓库:
	记录版本变动信息的一系列指针文件夹(.git),一般情况不要修改;
暂存区:
	在版本库中,add但未commit的信息保存在stage区;

	
1. 身份配置
git config --global user.name "example"
git config --global user.email "[email protected]"
#这两条命令之后,会在用户主目录~\.gitconfig文件中添加全局user.name和user.email; 
可以使用git config user.name|user.email查看;

生成密钥:这是用于和github数据传输加密
ssh-keygen -t rsa -C "[email protected]"	#然后Enter选择默认文件保存私钥,系统会还会提示输入两次git密码用于保护密钥;
完成后会在~\.ssh中生成两个文件,一个是私钥默认名为id_rsa,一个是公钥默认名为id_rsa.pub;
打开公钥,复制其内容,选择你的github账号:setting/SSH and GPG keys/new SSH key把复制的内容copy到Key文本中,Title则是用于区别的标题;


2. 创建版本库(repository)
git init 			#对本目录添加.git版本记录

3. 提交改动
git diff test.txt 	#对比磁盘文件(工作区)和版本库中文件区别
git staus 			#查看状态
提交需要的两次连续操作{
 git add *.txt 		#先添加到stage缓存区
 git commit -m "c" 	#再提交stage缓存区到本地仓库
}
4. 版本回退
git log [--pretty=oneline] 				#查看提交log[单行显示]HEAD栈
git reflog 								#查看所有log(含回退与提交)
git reset --hard 版本号|HEAD^^|HEAD~5 	#切换到 版本x|HEAD栈顶-2|HEAD栈顶-5
没有Commit的改动撤销: 
git check -- test.txt 					#对于删除和修改 撤销到缓存区状态(add过) 或 仓库当前版本状态
git clean -fd							#删除新建文件夹和文件

5. 使用分支(分支可以理解为命名空间)
git branch 				#查看分支

{ 	
	git branch dev 			#创建分支
	dev git checkout dev 	#切换到dev分支; 
}git checkout -b dev 	#创建并切换到
devgit merge dev 			#合并dev分支到当前分支
git branch -d dev 			#删除dev分支
git merge --no-ff -m "merge note" dev 				#不使用默认的Fast-forward模式合并,分支dev删除后还保留合并记录
git log --graph --pretty=oneline --abbrev-commit 	#查看提交log(含合并信息)

*合并时冲突
对于合并发生无法自动合并的冲突,文件中会列出:
<<<<<<< HEAD 
#当前分支部分
=======#
其他分支部分
>>>>>>> dev 
需要手动处理后,对文件进行一次提交操作(add+commit);

*保留现场(分支不提交切换)
git stash 			#隐藏工作现场
{
 git apply 			#恢复现场
 git stash drop 		#删除stash
}stash git stash pop #恢复并删除stash

6. 远程仓库
git clone https://github.com/Excample-GitHub/Demo.git 		#克隆并关联本地和远程仓库
git pull 				#下载最新版本 下载master分支
git push 				#上传本地仓库 推送master分支


git remote -v 					#查看所有远程仓库
git remote add origin2 https://github.com/Abraham-GitHub/GitTest.git 		#添加远程仓库 
git push [-u] origin2 master 	#提交master分支到远程元仓库(第一次提交需 -u 参数,提交并关联)

*冲突处理
	a. 尝试git push
	b. git pull 更新版本
	c. 处理冲突[参考 *合并时冲突]
	d. 再次 git push
	
*分支关联(一般只需保持master分支提交和更新)
	git push origin2 dev 							#推送本地dev分支 到 远程dev分支(不存在则创建)
	git checkout –b dev origin2/dev 				#下载dev分支的最新版本到本地(的新建dev分支)
	git branch --set-upstream-to origin2/dev dev 	#关联服务器origin2的dev分支和本地dev分支 
	 Ps:设置upstream后切换到dev分支后可以进行git pull/push操作,因为分支已经关联




本文使用的git工具来自:https://git-scm.com/download/






猜你喜欢

转载自blog.csdn.net/Fantastic_/article/details/78161243