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.提交线网