一git config相关设置
设置用户标识
git config --global user.name "wxa"
git config --global user.email "wxa@xxx"
设置远程用户标识存贮方式
git config --global credential.helper store //记住
git config --global credential.helper cache //缓存
git config credential.helper 'cache --timeout=3600' //设置缓存时间 单位s
设置push模式 matching
git config --global push.default matching // 同名push
git config --global push.default simple // 当前分支push
ps: 当提交修改到远程分支时,先使用pull更新在提交,防止提交出错。
忽略跟踪文件.gitignore
1 以/结尾表示目录, 仅仅表示目录自身,不包含其子项
2 支持统配符:* 0个或多个字符 ? 单个字符 [] 单个字符的匹配列表;
3 !k开头不忽略(跟踪)匹配到的文件或目录
注意:
1 xxx/* 表示以xxx/开头的所有文件,并不是表示xxx目录下的所有项。 首行优先级大于末行
2 即时生效,无需提交
3 对已添加的无效
证书认证:
1 在客户端执行 ssh-keygen -t rsa // 该命令会再$HOME/.ssh目录下生产id_rsa id_rsa.pub两个文件, 根据提示自选目录保存这两个文件
2 scp id_rsa.pub username@server_ip:/$HOME/.ssh // 将公钥上传到服务器
3 cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys // 将公钥内容追加到authorized_keys文件中
===================================常用命令==================================
git add filename... // 添加文件到暂存区
git rm filename... // 从暂存区删除文件
git commit [filename] // 提交暂存区文件内容到本地库
git clone URL... // 克隆远程库
git remote add URL... // 在已库基础上添加远程库
git push repos_name branch_name // 本地库文件上传到远程库中 -u --建立关联 避免总填写库名和分支名-- git push :branch 删除远程分支 git push :refs/tags/name 删除远程tag
git diff filename // 对比库文件
git reset --hard commit_id // 回退到上一个版本 HEAD^上个版本 HEAD^^上上个版本 HEAD~N 上N个版本
git reflog // 查看版本命令历史
git log // 查看提交命令历史
git reset HEAD file... // 去除索引 即从暂存区移除
git checkout -- file... // 撤销修改 优先比较暂存区与本地,若暂存区无,再比较库与本地
ssh-keygen -t rsa -C "765485868@qq.com" // 生成ssh key
git checkout -b b_name... // 创建并切换分支 相当于 git branch b_name git checkout b_name
git branch b_name // 创建分支 ps:创建分支都是从当前分支进行克隆
git checkout b_name // 切换分支
git branch // 查看当前分支 分支操作使用此命令加选项(-d 删除 —D 可删除未合并分支) checkout 只是切换(-b不存在会创建)
git merge b_name // 合并当前分支与指定分支 --no-ff -m “commit_msg” 为此次合并做提交记录
git --graph --pretty=oneline --abbrev-commit // 查看分支合并情况
git stash // 隐藏工作现场
git stash pop // 恢复隐藏并删除 相当于 git stash apply git stash drop
git stash list // 查看隐藏列表 git stash apply stash@{0} 恢复指定隐藏
git tag <name> [commit_id] // 创建标签 -a 指定标签名 -m 标签描述 -s标签签名 -d删除标签
git push origin tagname // 推送标签 git push origin --tags 推送全部未推送标签
git fetch origin tag tagname // 获取远程tag
git push origin :refs/tags/tagname // 删除远程tag
git config --global color.ui true // 显示命令颜色
git config --global alias.unstage 'reset HEAD' // 配置别名 .git/config 配置文件位置
git update-index --assume-unchanged <file> // 如果想在本地忽略某个文件 git update-index --no-assume-unchanged <file>
常见问题:
1 git clone克隆github远程库无法推送,报请求错误问题?
修改.git/config 中的origin=https://github.com/xxx为origin=https://username@github.com/xxx 中username为个人账号名
2 当克隆的库是使用git init初始化时git push报receive.denyCurrentBranch错误?
配置远程库git config receive.denyCurrentBranch ignore
需取推送内容需执行git reset --hard HEAD