git config --global  user.name'NAME'
git config --global  user.email 'Email '
--local  #只对某个仓库生效  同种配置 优先级高于glocal
--global #当前用户仓库  
--system #不常用
git config  --list  --global #local local需要进入仓库使用
https://note.youdao.com/ynoteshare1/index.html?id=1477b520800edbdb712d4fbb76ec125e&type=note2019-10-12 

 

https://gitee.com/progit/2-Git-%E5%9F%BA%E7%A1%80.html#2.1-%E5%8F%96%E5%BE%97%E9%A1%B9%E7%9B%AE%E7%9A%84-Git-%E4%BB%93%E5%BA%93

 

https://help.github.com/en/github/using-git/caching-your-github-password-in-git

  

创造仓库

已有

cd 进仓库
git init

 新建

cd 目录
git  init  yourproject
cd  yourproject  #下面就一个.git

 

git  add readme  #提交到暂存区

git  commit -m  "日志"

 

 

checkout  操作工作区(无法操作暂存区的东西) 回到工作区

可以改删的操作可以撤销  #必须先提交到本地残酷

 

 文件的作用

HEAD 的文件里是分支地址

config 是配置

refs

  headers  (分之名。。。内容为一个hash值 可通过 git cat-file -t hash值,查看文件类型 git cat-file -p hash值 查看文件内容 )

  tags    (js01  通过里面的hash 可以通过git cat-file -p 查看到有一个objects的hash 是一个commit )

 objects

  pack git 松散文件过多会打包放到pack里  通过目录和目录的拼写 拿到新的hash值 可以通过 (t 树 p文件)

 

commit、tree和blob三个对象之间的关系

commit 是一次提交 通过他的 -p 拿到这一次提交有哪些

而一个树下面有很多文件 -p 可以看到一个树 有哪些文件

而blob 是一个文件   -p可以看到这个blob的内容有什么

12丨分离头指针情况下的注意事项

如果切到没有的分支上 那么做的变更可能就被清掉

 

 

13丨进一步理解HEAD和branch

git logs 

git diff  hash1 hash2  #进行差异比较

git diff  HEAD HEAD^1^1  或者HEAD~2

14 | 删除分支

git branch  -D  分支名

14 |修改commit message的内容

git commit -amend ‘change message’

git rebase -i  base的hash  #pick 改为r  然后wq 再修改

 

 

 解决冲突

#假设这是你的本地仓库

1
2
3

 

#假设这是别人的
1
2
4  #别人改了这一行  主意是"加了"
4  #别人加了这一行

 

拉的话

git pull 

 

 

 

打开冲突文件

 

 

解决  :解决冲突再提交呗 还用问?

分支

 

 

合并的时候分支冲突

master

1
2

 

测试分支
1
2
3  #测试加了这一行

 

你的修BUG分支
1
2
4 #加了这一行

 

bug 与 master 合并后
1
2
3

 

然后你与master 合并后 
假设这是你的
1
2
3 

master:
1
2
4



当往下拉的时候就有冲突了

 然后解决

 

 

新建远程分支

git branch  fenzhi_name  #新建本地分支

git branch  #查看本地分支  如果当前的分支就是 git status

git brach -r #查看远程

git  push  origin  fenzhi_name     #新建远程分支   重新push一下

git checkout  分支名 #切换分支

合并分支

需要先切换到主分支上,再合并

git  merge  分支名    #合并本地分支

合并后再提交

删除分支

git branch  -d 分支名   #删除本地的

git push  origin  --delect 分支名  #删除远程的

怎样把连续的多个commit整理成1个?

git  rebase  -i  选择要合并的前一个hash 

 

 

 wq

 

 合并不连续 新添rebase

 

 

 

 

 

 

 

 怎么比较暂存区和HEAD所含文件的差异?

 

git diff  #工作区 和暂存取的区别 

git diff -- 文件1 文件2  #比较文件1 文件2 工作区与暂存区的差异

21丨如何让暂存区恢复成和HEAD的一样?

git reset HEAD #恢复到head 

git diff  --cache #暂存区与head比较 如果返回空 就是相同的

 

22丨如何让工作区的文件恢复为和暂存区一样?

checkout 是对工作区进行恢复 

而reset 是对暂存区进行恢复

23丨怎样取消暂存区部分文件的更改?

git reset  head

25丨看看不同提交的指定文件的差异

git diff  分支1 分之2  --文件  分支可以用版本hash 代替

26丨正确删除文件的方法

git rm  文件名 暂存取和工作区都删除

 27紧急任务需要修复 我们本地做修改如何处理

git stash #存到一个栈区里,工作目录恢复上一次的commit

git stash list  #查看所有状态

git stash pop #解决冲突

git stash apply #恢复 之前押入的版本依旧暴露

28 将不需要管理代码添加到ignore

xx/  #xx下面的内容都不纳入

xx  #忽视xx文件和xx文件夹

29如何将git仓库备份到本地

34 不同人修改了不同文件

 

git checkout -b  本地分之名  远程分之名

git fetch hostname #下载远程分支

git merge 远端分支名 #默认将远端分支名合并到当前分支

 

 

 pycharms使用

setting -git  配置git下的 ssh.exe 文件

配置url  vcs -checkout -git

 

问题 拉完代码后没有立即提交  现在远端修改后怎么处理

 

整体流程

git init
git config  --global user.name 'xzq'
git config --global user.email '492557688@qq.com'


ssh-keygen -t rsa #生成公钥私钥
交给老大

git remote add origin git@gitee.com:xiezhiqiang123/project_all.git  #连接仓库

git clone https://github.com/liuqingzheng/s7guitest.git
或者
git pull origin master  #从远端拉取
git pull origin master  #再从推送到远端

 

 

https://note.youdao.com/ynoteshare1/index.html?id=1477b520800edbdb712d4fbb76ec125e&type=note
1 git
		-git和svn----版本管理工具
		-git和svn对比
		-git工作流程:
			1 如果远程仓库有项目,本地没有:先clone(到本地仓库)-----chechout(工作区)---修改代码
			2 如果本地有已经在修改的项目(同步远程仓库代码):pull(从远程拉到工作区)
			3 修改了代码要提交:add(暂存区)----》commit(本地仓库)----》push(到远程仓库)
		-软件介绍
			-使用git必须装:Git-2.13.0-64-bit.exe
			-----下面两个都不是必须的
			-图形化操作:TortoiseGit-2.4.0.2-64bit.msi
			-图形化操作的中文包:TortoiseGit-LanguagePack-2.4.0.0-64bit-zh_CN.msi
		-使用
			-创建仓库:
				-使用gitbash创建仓库:git init   (会在当前目录想产生一个 .git 的隐藏文件)
				-使用小乌龟:点击
			-提交到暂存区
				-命令:git add .

			-提交到本地仓库
				-命令:git commit -m '注释'
		-工作区和暂存区
			-工作区:就是你当前被git管理的这个文件夹(可以修改,删除,创建文件)
			-暂存区:在 .git内部,我们看不到
		-修改文件:修改后提交到本地仓库
		-可以跟历史版本库比较差异,显示提交日志
		-还原修改:回退到某个版本(某次提交)
		-删除:正常操作是本地删除,然后提交到仓库(把文件删除的操作提交到仓库)
		-忽略文件:本质就是创建一个.gitignore 里面写文件夹的名字
		-连接远程仓库
			-github,码云,gitLab
		-创建远程仓库:s7gittest.git
		-链接github
			-https的方式
			-ssh的方式:在gitbash中生成密钥对:ssh-keygen -t rsa
				-需要在github上配置公钥(如果公司用的是gitlab,操作一样)
				-git remote add origin git@github.com:liuqingzheng/s7gittest.git
				
				-git remote add origin https://github.com/liuqingzheng/s7gittest.git
		-远程如果有项目,先克隆下来
			-git clone https://github.com/liuqingzheng/s7guitest.git
			-修改代码,add到暂存区  git add .
			-commit  到本地仓库     git commit -m '注释'
			-push 到远程仓库        git push origin master
		-冲突
			-两个人改了同一行代码
			-出现冲突往下pull的时候,会保留你的代码和远程的代码
			-解决冲突(使用同事代码,或者使用自己的代码)
			-再提交本地---push到远程
		-分支管理
			-查看分支
				-git branch  查看本地分支
				-git branch -r  查看远程分支
			-新建分支
				git branch 分支名字   新建本地分支
				
			-同步到远程
				-提交,push:git push origin lqztest
			-切换分支
				git checkout lqztest
			-合并代码
				-切到主分支:git checkout master
				-git merge lqznew
			-删除分支
				#删除本地
				git branch -d 分支名
				#删除远程
				git push origin --delete <分支名>
					
			-分支合并时冲突的解决
				-跟正常冲突解决一样
			
		-再pycharm中使用git	
			-先再setting---git上配置git按装的路径
			-从远程拉代码vcs-checkoutform..--git  输入远程的地址---点确定
			
			-再提交代码之前,先要拉代码(在公司中要做的),就可以能有冲突
			-解决冲突
			-push上去就可以了
			-创建分支,切换分支,右下角
			-查看操作日志
			-跟历史版本比较
			-revert 恢复到远程的代码
			
		

	
	

 

操作

新建远程分支
git checkout -b localbranch  #建本地
git branch #查看是否切换成功
git push origin localbranch:localbranch #新建远程 
删除idea
添加到ignore文件中
rm -rf idea

...

  

总结  

如何提交线网 切换分之会保留提交的时候的状态 
一.把新添功能推送线网分支的步骤
1.提交测试分之
2.提交线网分支
3.修改测试分支
4.确保测试无误
5.diff 线网分支 查看差异确定没有删错东西之后 提交到测试分支
6.切换线网分支 合并测试分支
7.提交线网

 

 

posted on 2019-10-09 22:24  谢Rain  阅读(214)  评论(0编辑  收藏  举报