git
安装
Mac
安装
https://www.git-scm.com/download/mac
下载安装
配置
git config --global user.name "matt" # 你的名字
git config --global user.email "imattdu@gmail.com" # 你的邮箱
# 配置git代理
git config --global http.proxy 'http://127.0.0.1:7890/'
git config --global https.proxy 'http://127.0.0.1:7890/'
# 配置github代理
git config --global http.https://github.com.proxy 'http://127.0.0.1:7890/'
# 取消代理
git config --global --unset http.https://github.com.proxy 'http://127.0.0.1:7890/'
可以先安装brew
将本地安装的git卸载
Windows
SSH登录
复制 id_rsa.pub 文件内容,登录 GitHub,点击用户头像→Settings→SSH and GPG keys
New SSH Key
输入复制的密钥信息
1.failed to push some refs to 'git@github.com:pavi-du/note.git'
问题:自己在远程仓库更改了内容,而本地不知道,直接提交
解决:
命令
基本
// 第一下克隆下来
git clone https://github.com/imattdu/note.git
git remote -v
// 设置别名
git remote add origin https://github.com/imattdu/note.git
// 拉取
git pull origin
// git add --all
git add --all
git commit -m "xxxm"
// 推送
//git push <远程主机名> <本地分支名>:<远程分支名>
git push origin master:master
分支
git branch // 查看本地分支
git branch -r // 查看远程分支
git branch -a // 查看本地分支和远程分支
git branch test // 创建test分支
git checkout test // 切换test分支
git merge test // 合并test分支
修改远程仓库地址
git remote rm origin
git remote add origin git@github.com:imattdu/studyhdfs.git
git remote set-url origin https://github.com/vuejs/vue.git
错误
由于第一次使用不是git clone 然后直接推送
IDEA如何第一次创建项目提交
首先在githup中创建项目
之后的俩步
这里记得和远程仓库的名字相同,如果远程是master,这里也得是master
之后可能会出现 Push rejected: Push to origin/master was rejected
我们输入以下内容即可
紧接着add,commit,push即可
# IntelliJ project files
.idea
*.iml
out
gen
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
# .gitignore
git config --global http.https://github.com.proxy https://127.0.0.1:XXXX
git config --global https.https://github.com.proxy https://127.0.0.1:XXXX
git config --global --unset http.proxy
git config --global --unset https.proxy
git config --global --unset http.https://github.com.proxy
git config --global --unset https.https://github.com.proxy
git config --global -l
git设置代理
git config --global http.proxy 'http://127.0.0.1:10809/'
git config --global https.proxy 'http://127.0.0.1:10809/'
打开设置-》网络设置-》找代理-》端口号
# github设置代理
git config --global http.https://github.com.proxy 'http://127.0.0.1:10809/'
# 取消代理
git config --global --unset http.https://github.com.proxy 'http://127.0.0.1:10809/'
查阅了一下资料,发现可以在pull命令后紧接着使用--allow-unrelated-history
选项来解决问题(该选项可以合并两个独立启动仓库的历史)。
git stash:备份当前工作区内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前工作区内容保存到Git栈中 git pull:拉取服务器上当前分支代码 git stash pop:从Git栈中读取最近一次保存的内容,恢复工作区相关内容。同时,用户可能进行多次stash操作,需要保证后stash的最先被取到,所以用栈(先进后出)来管理;pop取栈顶的内容并恢复 git stash list:显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。 git stash clear:清空Git栈
远程仓库创建-本地仓库创建
// 本地初始化
git init
git add --all
git commit -m ""
// 关联仓库
git remote add origin 远程仓库地址
git remote -v
git push origin master:master
//提示出错,使用下面命令合并即可
// 合并俩个独立的仓库
git pull origin master --allow-unrelated-histories
查看冲突文件
换行引发的发文
git config --global core.autocrlf false
https://cnbin.github.io/blog/2015/06/19/git-core-dot-autocrlf-pei-zhi-shuo-ming/
提示: git config pull.rebase false # 合并 提示: git config pull.rebase true # 变基 提示: git config pull.ff only # 仅快进
合并
分支并没有改变·1
变基:
分支也基于最新的基础改变了
// master分支执行b1的操作 基于他们最近的祖先
git rebase b1
// 提交已解决的事项
git add .
git rebase --continue
// 退出变基
git rebase --abort
// 不推荐
git stash pop --index
恢复最新的进度到工作区和暂存区
git stash save "xxx"
git stash list
git stash pop
git stash pop stash@{1}
git stash apply stash@{1}
git stash drop stash@{1}
git stash clear
工作区 add 暂存区 commit 分支
git reset --hard
忽略文件
符 号 | 说明 |
---|---|
空格 | 不匹配任意文件,可作为分隔符,可用反斜杠转义 |
# 开头 | 标识注释,可以使用反斜杠进行转义 |
! 开头 | 标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义 |
/ 结束 | 只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件 |
/ 开始的模式 | 匹配项目跟目录 |
** | 匹配多级目录,可在开始,中间,结束 |
? | 通用匹配单个字符 |
[] | 通用匹配单个字符列表 |
* | 通用匹配多个字符 |
配置
换行符 autocrlf
换行
- \r = CR = Carriage-Return = 回车
- \n = LF = Line-Feed = 换行
- \r\n = CRLF = Carriage-Return Line-Feed = 回车换行
Windows 下默认的文本换行符是 \r\n,Linux 下默认的换行符是 \n,Mac 下默认的换行符是 \r。
autocrlf 可选参数
- true 表示在推送时转成 \n,在拉取时转成 \r\n。这样的设置让 Windows 的开发者能兼容很多的开发工具(比如早期的记事本,新的已经支持 \r\n 了),不至于遇到很多换行符问题。
- false 表示在推送时和拉取时都原样保留换行符。这样的设置在所有程序员都在同一个平台开发时很有用,git 完全不处理换行符,全部改由开发者自行解决。
- input 表示在推送时转成 \n,在拉取时原样保留换行符。注意到,这样的设置会让仓库里所有的换行符都变成 \n 不再有什么时候有 \r\n 了,所以对 Windows 平台的开发者并不友好。
具体配置
mac,linux设置为input
win10
如果项目均在win则设置为false
否则设置为true