git的学习和管理

开始

基本

配置

git config [--local|--global] user.name "ss"
git config [--local|--global] user.email "sdf"
git config [--local] user.name 
git config [--local] user.email 
git config --list #查看配置内容

初始化

git init

提交

git add 文件
git add -u #已提交的文件添加
git status 
git -commit -m'介绍'
git commit --amend #进入文件 修改提交
https://github.com/Chuyongwei/firse.git

查看历史

git log
git log -n2 --oneline#只看最近的记录

查看当前文件

ls -al

修改名字

git mv 旧文件名 新文件名

分支

 git branch -v #查看分支
 git checkout -b 分支名 f7f25d009228a20e5c7eb7594aa726cdc5910545 #创建分支
 git checkout 分支名#选择分支
git log --all #查看分支
git log --all --graph 
git branch -b 分支名 #删除分支

查看

git hlep --web log #图形化帮助
gitk #

.git文件

git cat-file -p #内容
git cat-file -t #类型

上传到远程仓库

 git remote add origin https://github.com/Chuyongwei/test.git
 git push -u origin tage2 

拉取

$ git pull --rebase origin master

合并代码时 使用[--allow-unrelated-histories]

管理

修改commit

git commit -amend

合成commit

到最开始的目录制作

git rebase -i 编码
#将pick改成s

检查更新

git diff --cached #检查暂存区所有文件与仓库的区别
git diff #检查工作区和暂存区的区别
git diff -- 文件 fold/file #查看两个文件的区别
git diff 分支1 分支2 [-- 文件] #检查两文职的不同

只会显示删除和修改

管理更新

将暂存区内容丢弃

git rebase HEAD #所有暂存区文件丢弃
git reset HEAD -- 文件  #将暂存区的文件删除

恢复到暂存区

git checkout -- 文件#将文件恢复到暂存区的内容

将工作区回退到节点

git reset --hard 编码  #head节点改到某一段
git rm 文件 #删除暂存区的文件

暂存

用于在做一些工作时,接到紧急任务把手头工作暂存来(当前工作代码消失),然后当工作提交时,恢复暂存区的内容到紧急工作之前的样子(即之前的代码给你可以继续做你的事了)

紧急任务应该在另一个分支吧

git stash #放入暂存区
git stash list #检查文件
git stash apply #恢复暂存区内容
git stash pop #恢复暂存区内容并丢了暂存区记录

.gitignore

忽略优先级

在 .gitingore 文件中,每一行指定一个忽略规则,Git检查忽略规则的时候有多个来源,它的优先级如下(由高到低):
1、从命令行中读取可用的忽略规则
2、当前目录定义的规则
3、父级目录定义的规则,依次递推
4、$GIT_DIR/info/exclude 文件中定义的规则
5、core.excludesfile中定义的全局规则

忽略语法

在 .gitignore 文件中,每一行的忽略规则的语法如下:
1、空格不匹配任意文件,可作为分隔符,可用反斜杠转义
2、以“#”开头的行都会被 Git 忽略。即#开头的文件标识注释,可以使用反斜杠进行转义。
3、可以使用标准的glob模式匹配。所谓的glob模式是指shell所使用的简化了的正则表达式。
4、以斜杠"/"开头表示目录;"/"结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件;"/"开始的模式匹配项目跟目录;如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录。
5、以星号"*"通配多个字符,即匹配多个任意字符;使用两个星号"**" 表示匹配任意中间目录,比如a/**/z可以匹配 a/z, a/b/z 或 a/b/c/z等。
6、以问号"?"通配单个字符,即匹配一个任意字符;
7、以方括号"[]"包含单个字符的匹配列表,即匹配任何一个列在方括号中的字符。比如[abc]表示要么匹配一个a,要么匹配一个b,要么匹配一个c;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配。比如[0-9]表示匹配所有0到9的数字,[a-z]表示匹配任意的小写字母)。
8、以叹号"!"表示不忽略(跟踪)匹配到的文件或目录,即要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。需要特别注意的是:如果文件的父目录已经被前面的规则排除掉了,那么对这个文件用"!"规则是不起作用的。也就是说"!"开头的模式表示否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用"!"也不会再次被包含。可以使用反斜杠进行转义。
#忽略doc文件
doc/
#忽略doc文件夹的内容
doc
#忽略txt结尾的文件
*.txt
git rm -r --cached .  #将仓库的文件清除
git add . #重新加入暂存区

备份git

git clone --bare 协议
#哑协议
/d/baidu/doc/git/wtch_git_object
 #file协议
 file:///d/baidu/doc/git/wtch_git_object 

远端

git remote -v #查看目标仓库
git remote add 名字 file:/// #添加目标仓库
#一段操作后
git push 名字 #推到目标仓库

合作

克隆代码

git clone url [目录]

基于远端分支创建分支

git checkout -b 本地分支 远端分支

另一边的刷新仓库获取新的分支

git fetch 远端名

解决代码不同的问题

在这里插入图片描述

一人改了文件

多人合作时,每次开始写代码都应该先拉取代码

git pull #与远端代码同步

刷新分支

git merge 远端分支
#填写一个文件(不想写就保存退出)
#本地接收到更新
两个人改了相同文件

方法一:直接pull

方法二:

git fetch
 git merge 远端分支
 #本地接收到更新

解决完后提交

两个人改了相同区域

得知push报错后进行上述方法修复,发现更新成功但没东西,看看pull下来啥

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值