创建存储库
$ git init [项目名称]
$ git clone <git 仓库 url 地址>
$ git clone <git 仓库 url 地址> <我的文件夹>
|
配置
$ git config --global user.name "name"
$ git config --global user.email "email"
$ git config --global color.ui auto
$ git config --global --edit
|
变更
$ git status
$ git add [file]
$ git add .
$ git commit -m "commit message"
$ git commit -am "commit message"
$ git reset [file]
$ git reset --hard
$ git diff
$ git diff --staged
$ git rebase [branch]
|
分支
$ git branch
$ git branch -av
$ git checkout my_branch
$ git checkout -b new_branch
$ git branch -d my_branch
$ git checkout branchB $ git merge branchA
$ git tag my_tag
$ git branch -m <new_name>
$ git push origin -u <new_name>
$ git push origin --delete <old>
|
观察存储库
# 显示当前活动分支的提交历史 $ git log
# 显示 branchA 上不在 branchB 上的提交 $ git log branchB..branchA
# 显示更改文件的提交,即使重命名 $ git log --follow [file]
# 显示 branchA 中的内容与 branchB 中的差异 $ git diff branchB...branchA
# 在 Git 中以 人类可读 格式显示任何对象 $ git show [SHA]
# 按内容搜索更改 $ git log -S'<a term in the source>'
# 显示特定文件随时间的变化 $ git log -p <file_name>
# 打印出很酷的日志可视化 $ git log --pretty=oneline --graph --decorate --all
|
同步
$ git fetch [alias]
$ git merge [alias]/[branch] No fast-forward $ git merge --no-ff [alias]/[branch] Only fast-forward $ git merge --ff-only [alias]/[branch]
$ git push [alias] [branch]
$ git pull
$ git cherry-pick [commit_id]
|
远程
$ git remote add [alias] [url]
$ git remote
$ git remote -v
$ git remote rm [remote repo name]
$ git remote set-url origin [git_url]
|
临时提交
$ git stash
$ git stash list
$ git stash pop
$ git stash drop
|
跟踪路径更改
# 从项目中删除文件并暂存删除以进行提交 $ git rm [file]
# 更改现有文件路径并暂存移动 $ git mv [existing-path] [new-path]
# 显示所有提交日志,并指示任何移动的路径 $ git log --stat -M
|
忽略文件
.gitignore 文件指定了 Git 应该忽略的故意未跟踪的文件
/logs/*
!logs/.gitkeep
.DS_store
node_modules
.sass-cache
|
分支
$ git branch -vv
$ git checkout -
$ git branch -r
$ git checkout <branch> -- <file>
|