只梳理在终端常输入的命令,复杂命令一般用 SourceTree 操作。
本文中的 remote 一般默认就是 origin,可相互替代。
Git 仓库管理
创建 Git 仓库
仓库的创建有两种方法,一可以在本地新建,二直接复制远程的仓库到本地。
#本地初始化一个仓库git init#克隆远程仓库 并重命名仓库名(可选)git clone [url] [dir_name]#克隆远程仓库 指定分支git clone -b <branch> <url> <dir_name>
本地仓库与远程仓库关联
#本地仓库与远程仓库关联git remote add origin <url>#重新设置远程仓库git remote set-url origin <url>
分支命令
创建分支
#创建分支git branch branchName#切换分支git checkout branchName#创建并切换分支git checkout -b branchName
创建追踪远程的分支
追踪远程的分支 表示跟远程的分支进行关联,可以直接通过 git pull & git push 管理。
#创建追踪远程的分支#追踪分支更新执行 git pull ,git push 即可git checkout -t|[--track] <remote>/<tracked branch> ##创建的分支名跟远程分支相同git checkout --track -b <local branch> <remote>/<tracked branch>git checkout -b branchName <remote>/<tracked branch>eg: git checkout --track -b dev_20170331 origin/dev_20170331
从 Tag 创建分支
# 从指定的 Tag 创建分支git checkout tagName -b branchName
追踪分支
#跟踪远程分支 -u 或 --set-upstream-togit branch -u <remote>/<branchName>git push -u <remote>/<branchName>
删除分支
# 从指定的 Tag 创建分支git checkout tagName -b branchName
更新/合并分支
#合并分支git merge branchName#拉取远程分支git pull remote branchName#推送到远程分支git push remote branchName#更新git fetch
代码提交
#to stage to include/update what will be committedgit add [file]|[dir]|[.]#to unstagegit rm --cached [-r] <file>#提交更新git commit -m msg#add 并 commitgit commit -a -m msggit commit -am msg#替换上次提交记录 --amendgit commit -m msg --amend#恢复到工作区 discard changes in working directorygit checkout -- <file>#恢复 HEADgit reset --hard HEAD
标签
#删除本地标签git tag -d tagName#删除远程标签git push origin :refs/tags/tagName
Git 配置
#设置大小写敏感git config --global core.ignorecase false#设置显示中文文件名git config --global core.quotepath false#查看配置git config --list
别名配置
配置 Git 别名可以简化命令,提高效率。
可以打开 gitconfig 配置,然后在 alias 处修改 (推荐)。
open ~/.gitconfiglg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relativeco = checkoutbr = branchci = commitst = statusunstage = reset HEAD --last = log -1 HEAD#查看贡献rank = shortlog -sn --no-mergescob = checkout -b
也可以敲命令配置,作用相同。
git config --global alias.co checkoutgit config --global alias.br branchgit config --global alias.ci commitgit config --global alias.st status
常用操作
移除 .idea 文件夹
有时候一不小心把 .idea 文件夹 push 到了远程,这时候再加 gitignore 已经没用了(已经跟踪了的文件,再无视,是没有效果的)。
- 执行 git rm -fr .idea
- 重新加载项目
- 在 .gitignore 里添加 /.idea 忽视 idea
- 再 gcam “rm idea” git push 到远程
这个方法也适用于其他的文件。
