#-C注释为了区分秘钥,也可以不写
ssh-keygen -t rsa -C "[email protected]"
# Generating public/private rsa key pair...
# 三次回车即可生成 ssh key
cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
#将id_rsa.pub文件的内容添加到远程即可
git clone -b dev_jk http://10.1.1.11/service/tmall-service.git
#-b dev-jk:指定分支分支
#http://10.1.1.11/service/tmall-service.git:仓库地址
解决方法:git默认是检测文件属性改变的,可以通过如下命令设置忽略文件属性的检测
#全局仓库生效
git config --global core.fileMode false
#当前仓库生效
git config core.filemode false
解决方法:git默认会进行换行符转换的,可以通过如下命令设置不自动转换
#全局仓库生效
git config --global core.autocrlf false
#当前仓库生效
git config core.autocrlf false
解决方法:git提交时默认会忽略文件名的大小写,所以git status是不会提示你有修改的,可以通过如下命令设置大小写检测
#可以通过 git config --get core.ignorecase 查看默认配置
#全局仓库生效
git config --global core.ignorecase false
#当前仓库生效
git config core.ignorecase false
然后git status就可以看到修改的东西,然后就是进行正常的操作就可以提交了,但是你会发现一个问题,在本地是只有一个你修改过后的文件,但是在线上大小写两个都会存在,而且你必须删除才行(直接git上操作删除即可),然后你会发现你把大写的删除之后,线上小写的文件依旧存在,但是本地的那个文件没有了,这时候就需要本地再重新建一个一样的,再次重新提交即可,其实最好是一开始就把git 的默认配置修改掉(区分大小写的模式),后面的操作其实也可以直接本地先备份再删除提交
#全局仓库生效
git config --global core.editor 编辑器路径
#当前仓库生效
git config core.editor 编辑器路径
#全局仓库生效
git config --global alias.ll "log --graph --pretty=format:'%C(yellow)%h%Creset -%C(cyan)%d%Creset %s %Cgreen(%an, %cr)' --abbrev-commit"
#当前仓库生效
git config alias.ll "log --graph --pretty=format:'%C(yellow)%h%Creset -%C(cyan)%d%Creset %s %Cgreen(%an, %cr)' --abbrev-commit"
[user]
email = guchunqi@cvte.com
name = guchunqi
[core]
editor = D:/Mysoftware/QQbroswer/Notepad++/notepad++.exe
autocrlf = false
filemode = false
ignorecase = false
[commit]
template = E:\\Mycode\\gitcommit_template
[alias]
ll = log --graph --pretty=format:'%C(yellow)%h%Creset -%C(cyan)%d%Creset %s %Cgreen(%an, %cr)' --abbrev-commit
[]
[what]
[why]
[how]
git branch -a :查看所有分支
git branch -r :查看远程分支
git branch -vv :查看本地分支所关联的远程分支
git branch -m old_branch new_branch :重命令本地分支
git push origin :old_branch :删除旧分支
git push --set-upstream origin new_branch 或者git push -u origin new_branch:push新的分支
注意:把origin改为自己的名称
git reset [ --mixed | --soft | --hard] [<commit ID>]
git reset --mixed commit-id/git reset commit_id
git reset --soft commit_id
git reset --hard commit_id
方法一:
git reset --hard commit_id
git push origin branch_name
方法二:
git branch backup
git push origin backup:backup
git reset --hard xxxxx
git push origin :master
git push origin master
多人开发,经常遇到开发某一个分支时,需要处理其他事情,这时就可以暂存手头的工作,进行其他工作,完事后再恢复,继续工作
#查看当前状态
git status
#如果有修改,添加修改文件
git add .
#暂存操作
git stash save '本次暂存的标识名字'
#查看记录
git stash list
pop命令恢复,恢复后,暂存区域会删除当前的记录
#恢复指定的暂存工作, 暂存记录保存在list内,需要通过list索引index取出恢复
git stash pop stash@{index}
apply命令恢复,恢复后,暂存区域会保留当前的记录
#恢复指定的暂存工作, 暂存记录保存在list内,需要通过list索引index取出恢复
git stash apply stash@{index}
#删除某个暂存, 暂存记录保存在list内,需要通过list索引index取出恢复
git stash drop stash@{index}
#删除全部暂存
git stash clear
#正常提交代码
git add .
git commit -m "..."
git push(遇到冲突)
git reset --hard HEAD^(回到开发的基础版本)
git pull(拉取远程的更新)
git reflog(查看刚刚要push的那一个提交的commit-id)
git cherry-pick commit-id
一般会自动合并,如果自动合并不了就需要手动解决冲突
git add .
git commit
git push
vim .gitkeep
# Ignore everything in this directory
*
# Except this file !.gitkeep
git branch -m oldName newName
git push origin newName
git push --delete origin oldName
新建远程仓库
进入本地仓库,重命名远程仓库名
git remote rename origin old-origin
git remote add origin ssh://xxxxx.git(ssh地址)
git remote -v
git push origin dev:main
git remote remove origin
git remote rename old-origin origin
git config --global user.email "[email protected]"
git config --global user.name "guchunqi"
git config --global core.editor vim
git config --global commit.template ~/gitcommit_template
git config --global core.fileMode false
git config --global core.autocrlf false
git config --global core.ignorecase false
git config --global alias.co "commit"
git config --global alias.ps "push"
git config --global alias.pl "pull"
git config --global alias.ck "checkout"
git config --global alias.ver "rev-parse --short=8 HEAD"
git config --global alias.lg "log --graph --pretty=format:'%C(yellow)%h%Creset -%C(cyan)%d%Creset %s %Cgreen(%an, %cr)' --abbrev-commit"
git config --global alias.br "branch"
git config --global alias.st "status"
git config --global alias.df "diff"