Git命令整理【本地操作】(上)
Git命令整理【可视化软件-SourceTree】(下)
这里主要记录一下远程操作
远程操作
//首先在与远程库通信中使用的ssh通信,所以需要创建SSH key,并将SSH key添加到远程库中
ssh-keygen -t rsa -C "youreamil@example.com"
//之后一路回车即可
cat ~/.ssh/id_rsa.pub //查看公钥(其中还有一个是id_rsa为私钥)
//若存在本地库,想把空的线上库与本地库相关联
git remote add origin git@github.com:xxxxxxx/xxxx.git //这样就将git与远程库相关联
//删除关联的远程库
git remote rm origin
git push -u origin master //第一次push需加-u 这是因为将本地master分支内容推送到远程的master分支,并将两个分支相关联
git push origin master //以后推送的方法
//实际开发则是先有远程库 进行clone到本地后进行开发
git clone git@github.com:xxxxxxxx/xxxx.git
分支管理
//创建分支
git branch new_feature
//切换分支
git checkout new_feature
//上述两步等价于
git checkout -b new_feature
//查看本地分支
git branch
//查看远程分支
git branch -v
//查看所有分支
git branch -a
//合并分支 在切换回来的分支上操作
git merge new_feature
//删除分支
git branch -d new_feature
//switch命令使用
git switch -c new_feature //创建并切换到新的分支 但这里要注意git的版本
git switch new_feature //切换分支
//禁止使用Fast-Forward模式进行merge分支
git merge --no-ff -m "merge info" new_feature //这时是使用普通模式进行合并分支,会带有commit版本号
//将当前的工作现在隐藏
git stash
//查看工作现场
git stash list
//恢复工作现场
git stash apply & git stash drop
//一键恢复
git stash pop
//复制一个特定的提交到当前分支
git cherry-pick {版本号}
//强行删除一个分支
git branch -D new_feature
远程仓库
//查看远程库
git remote
//查看远程库的信息
git remote -v
//推送远程库
git push origin master
//创建本地分支和远程分支
git checkout -b dev origin/dev
//建立本地分支和远程分支的联系 & 拉取远程分支
git branch --set-upstream-to=origin/dev dev
git pull
//将未push的分支整理为一条直线,改变基于的标准,以最新的远程分支为标准
git rebase
标签管理
//切换到需要打标签的分支 给该分支打上标签
git checkout -b dev && git tag v1.0
//查看当前所有标签
git tag
//给提交版本号打标签
git log --pretty=oneline --graph --abbrev-commit //找出log中的版本号
git tag v0.9 i7823y
//查看当前标签信息
git show v1.0
//给标签指定特有的信息
git tag -a v0.8 -m "add tag" 0909j
//删除标签
git tag -d v0.8
//推送标签
git push origin v1.0
//推送所有标签
git push origin --tags
//删除远程标签
git push origin :refs/tags/
自定义git
git config --global color.ui true //设置git显示颜色
//忽略文件的配置 需要配置的文件都在该目录下
https://github.com/github/gitignore
//想提交被忽略的文件
git add -f <file name>
//查看被忽略的原因
git check-ignore -v <file name>
//配置别名
git config --global alias.xxx <操作名称>
//当前仓库的配置都放在 .git/config中 若要删除别名 在这里面删除即可;如果要删除该用户的config 则需要在 .gitconfig中删除