git 配置
配置文件位置: ~/.gitconfig
配置用户
git config --global user.name "username"git config --global user.email "email@example.com"复制代码
生成 ssh-key
生成的秘钥和公钥在本机位置:~/.ssh (id_rsa:私钥;id_rsa.pub:公钥)
公钥可添加到
github
等类似托管平台,以便能够使用远程仓库
ssh-keygen -t rsa -C "email@example.com"复制代码
git别名(参考zsh)
macOS
和linux
可安装zsh
和oh-my-zsh
以下为
.gitconfig
内容
使用:
git glods
git glola
[user] name = *** email = ***[alias] glods = log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short glola = log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --all复制代码
git 常用命令
clone
将远程仓库拉取到本地
git clone url复制代码
add
将修改的内容添加到暂存区
git add fileName #单个文件git add . #多个文件复制代码
commit
提交描述
git commit #进入编辑器编辑提交描述,比如默认的 vimgit commit -m "提交描述" #在命令行添加提交描述git commit --amend #修改上一个提交(commit)描述复制代码
checkout
撤销工作区的修改、分支管理
git checkout -- fileName #撤销工作区单个文件的修改git checkout -- . #撤销工作区所有文件的修改git checkout branchName #切换到分支 branchNamegit checkout -b branchName #创建分支 branchName 并切换到该分支git checkout -b branchName commit_id/tag #以 commit_id/tag 为最后一次提交新建一个分支 branchName,并切换到该分支git checkout -b branchName origin/branchName #将远程分支 origin/branchName 同步到即将创建的分支 branchName复制代码
pull
拉取远程分支到本地并与本地
git pull origin branchName #拉取远程分支 branchName 到本地并合并:git pull = git fetch + git mergegit pull origin branchName --rebase #(推荐该方式,使得提交树干净整洁,无多余无用的commit)拉取远程分支 branchName 到本地并进行变基操作:git pull = git fetch + git rebase复制代码
push
将本地提交同步到远程分支,同步之前最好执行
git pull origin branchName --rebase
,保持与远程分支内容一致后再同步
git push origin branchName #将本地分支推送到远程分支git push origin branchName --follow-tags #把 commit_id 所引用的标签一起推送到远程仓库git push origin tagName #将标签 tagName 推送到远程仓库git push origin --tags #一次推送所有本地新增的标签git push origin --delete branchName #删除远程分支复制代码
fetch
拉取远程分支更新到本地
git fetch origin branchName #将远程分支 branchName 更新的内容同步到本地的分支 `origin/branchName`git fetch origin branchName1:branchName2 #将远程分支 branchName1 的更新同步到本地分支 branchName2 ,若本地分支不存在,则自动创建复制代码
branch
分支管理
git branch branchName #创建分支 branchNamegit branch -d branchName #删除已经合并到本分支的其他分支git branch -D branchName #(强制删除)删除未合并到本分支的其他分支git branch branchName commit_id/tag #以 commit_id/tag 为最后一次提交新建一个分支 branchNamegit branch branchName origin/branchName #创建一个新分支 branchName 同步远程分支 origin/branchName 的信息复制代码
stash
将工作区修改的内容储藏起来,只会储藏
git add
之后的文件的修改,新添加的文件不会被git
管理
git stash #储藏工作区修改git stash list #显示储藏列表git stash pop/apply #应用储藏列表最上面一个到工作区git stash apply stash@{2} #应用指定储藏到工作区git stash clear #清空储藏列表复制代码
merge
分支合并
git merge branchName #将分支 branchName 上新的提交合并到当前分支复制代码
rebase
变基操作
git rebase branchName #将分支 branchName 上新的提交变基到当前分支git rebase --continue #解决变基冲突后继续变基git rebase --abort #放弃本次变基,代码将恢复到变基之前git rebase --skip #将引起冲突的commits丢弃掉(慎重)复制代码
tag
推送标签到远程仓库,可查看
push
那一节
git tag #显示tag列表git tag tagName #给最近一次的 commit 添加标签 tagNamegit tag tagName commit_id #给指定 commit_id 添加标签 tagNamegit tag -d tagName #删除标签 tagName复制代码