工作流
你的本地仓库由 git 维护的三棵“树”组成。第一个是你的 工作目录,它持有实际文件;第二个是 暂存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,指向你最近一次提交后的结果。
# 将工作区的修改提交到 Stage
git add *
git add <filename>
# 将暂存区的内容提交到 HEAD
git commit -m '代码提交信息'
# 推到远程仓库
git push
配置工具
git config --global user.name "[name]"
对你的commit操作设置关联的用户名。
git config --global user.email "[email address]"
对你的commit操作设置关联的邮箱地址。
创建仓库
git init [project-name]
创建一个本地的仓库,并设置名字。
git clone [url]
下载一个项目以及它所有的版本历史。
更新
git pull
更新本地仓库至最新改动。
查阅历史
git log
列出当前分支的版本历史。
git log --follow [file]
列出文件的版本历史,包括重命名。
更改
git status
列出所有新建或者更改的文件,这些文件需要被commit。
git diff [path]
展示那些没有暂存文件的差异。
git diff [commit id] [path]
展示指定文件的某个版本与当前版本的差异。
git diff [commit id] [commit id] [path]
展示指定文件的两个版本的差异。
git diff --staged [path]
展示那些已经暂存的文件的差异。
撤销提交
git reset [commit id]
撤销所有指定版本后的提交,将文件移除暂存区,在本地保存更改。
git checkout -- <filename>
使用HEAD中的最新内容替换掉你工作目录中的文件,已添加到Stage中的改动,以及新文件,都不受影响。
git reset --hard [commit id]
放弃所有更改并回到某个指定的版本。
注意:这里的commit为版本号,可以通过 git log/relog 查询。
分支
分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是“默认的”。在其他分支上进行开发,完成后再将它们合并到主分支上。
git branch
列出当前仓库中所有的本地分支。
git branch [branch-name]
建立一个新分支。
git checkout [branch-name]
切换到一个特定的分支上并更新工作目录。
git merge [branch-name]
合并特定分支的历史到当前分支。
git branch -d [branch-name]
删除特定的分支。
停止追踪
文本文件.gitignore可以防止一些特定的文件进入到版本控制中
git ls-files --other --ignored --exclude-standard
列出所有项目中忽略的文件
保存临时更改
暂存一些未完成的更改。
git stash
临时存储所有修改的已跟踪文件。
git stash pop
重新存储所有最近被stash的文件。
git stash list
列出所有被stash的更改。
git stash drop
放弃所有最近stash的更改。
代码冲突
<<<<<<< HEAD
nine
=======
eight
>>>>>>> branch-a
这里的冲突区块由<<<开始>>>结束,===用于分隔两个冲突的版本。这里手动修改完后就可以add,commit,push了。