Git是一个开源的分布式版本控制系统。它占用资源小,具有闪电般的快速性能。
你的本地存储库由git维护的三棵“树”组成。第一个是Working Directory保存实际文件的文件。第二个是Index充当暂存区,最后一个HEAD指向你所做的最后一次提交。
列出配置设置:
git config --list设置用户名和电子邮件:
git config --global user.name "xxx" git config --global user.email "xxx@apple.com"保存用户名和密码,而不用每次推/拉(push/pull)的时候都输入:
git config --global credential.helper store创建一个新目录,打开它并执行:
git init这会在本目录创建一个新的.git仓库
可以使用提议更改(将其添加到Index):
git add <filename> git add *这是基本git工作流程的第一步。要实际提交这些更改,请使用:
git commit -m "Commit message"现在文件已提交到HEAD,但尚未提交到远程存储库中。
要将这些更改发送到远程存储库,请使用:
git push origin master修改master可以将更改推送到的任何分支。 如果你尚未克隆现有存储库,并且想要将存储库连接到远程服务器,则需要使用远程添加:
git remote add origin <server>分支用于开发彼此隔离的特征。创建存储库时,master分支是“默认”分支。使用其他分支进行开发,并在完成后将其合并回master分支。 创建使用命名一个新的分支feature_x并且切换到该分支:
git checkout -b feature_x切换回master分支,并且删除删除feature_x:
git checkout master git branch -d feature_x重命名分支:
git branch -m <branch name> <new branch name>删除本地和远程分支:
git branch -d <branch name> git push origin --delete <branchName>显示本地和远程分支:
git branch -a git branch -lv git branch -rv将本地存储库更新为最新提交:
git pull将另一个分支合并到当前活动分支:
git merge <branch>在两种情况下git均尝试自动合并更改。不幸的是,这并非总是成功的,有时会导致冲突,这时候我们通过编辑git显示的文件来手动合并这些冲突。更改后,需要将它们标记为已合并:
git add <filename>建议为软件版本创建标签,可以这样创建一个名为1.0.0的标签:
git tag 1.0.0 git tag 1.0.0 1b2e1d63ff1b2e1d63ff代表你想用你的标签来引用提交ID的前10个字符,如果没有设置就默认为HEAD。
删除远程标签:
git push origin --delete tag <tagname>重命名标签:
git tag new old git tag -d old git push origin :refs/tags/old git push --tags可以以最简单的形式来研究存储库的历史记录:
git log也可以添加许多参数来使日志看起来像您想要的。比如仅查看某个作者的提交:
git log --author=simpleiot要查看一个压缩得很厉害的日志,其中每个提交都是一行:
git log --pretty=oneline仅查看哪些文件已更改:
git log --name-status使用reflog查找丢失的提交:
git reflog可以使用如下命令替换本地更改,它将工作树中的更改替换为HEAD中的最后一个内容。已经添加到索引的更改以及新文件将被保留。:
git checkout -- <filename>如果想删除所有本地更改和提交,请从服务器获取最新历史记录,然后将本地master分支指向该服务器:
git fetch origin git reset --hard origin/master从存储库中删除未跟踪的文件和目录:
git clean -fd