git init初始化Gitgit add README.md将文件添加到暂存区域git add .将当前目录下的所有文件添加到暂存区域git commit -m "add a readme file"将文件提交到Git仓库git clone https://github.com/n0tr00t/Sreg克隆GitHub上别人的项目git commit -am "change the license file"一步实现add和commitgit reset HEAD~把Git仓库的文件还原到暂存区域git checkout把暂存区域的文件还原到工作目录git log查看历史提交记录git reset 11c2929回滚到特定ID的快照git reset --hard 31f46be根据快照ID往前滚git reflog查看每次执行完命令,HEAD指向的版本号git commit --amend -m "新的提交说明"修改最后一次提交git rm test.py删除工作目录和暂存区域的文件(取消跟踪)git checkout -- README.mdcheckout单个文件git mv game.py wordgame.py重命名文件git branch feature创建分支git log --decorate [--oneline]查看当前分支情况[oneline单行查看]git log --oneline --decorate --graph --all查看系统分支情况[graph绘制分支图,all显示所有分支]git checkout feature切换分支git merge feature合并feature分支git checkout -b feature2创建一个新的分支feature2并checkout出来git branch -d feature2删除feature2分支git branch -D feature当feature分支当中有未合并的内容,也强行删除feature分支git checkout HEAD~切换到匿名分支(当前版本上一个版本)
关于提交代码到GitHub
git remote add origin git@github.com:yourName/yourRepo.git添加远程地址到当前仓库
详谈checkout命令
git checkout HEAD~ README.md当给定某个文件名时,Git 会从指定的提交中拷贝文件到暂存区域和工作目录git checkout README.md如果命令中没有给定具体的快照 ID ,则从暂存区域回复指定文件到工作目录git checkout --README.md如果存在README.md分支的话,指定恢复文件,而不是切换分支
其他说明
git status命令时显示On branch master说明我们位于一个叫做master的分支里,这是默认的分支。git reset HEAD~命令中的HEAD~表示HEAD的上一个版本,如HEAD~~表示HEAD的上上个版本,HEAD~~~表示HEAD的上上个版本,HEAD~10表示HEAD之前第10个版本。git reset --soft HEAD~表示只移动HEAD的指向,但并不会将快照回滚到暂存区域。(相当于撤销上一次的提交)git reset [--mixed(默认,可省略)] HEAD~将快照回滚到暂存区域。git reset --hard HEAD~表示不仅移动HEAD的指向,将快照回滚到暂时区域,它还将暂存区域的文件还原到工作目录。git commit --amend如果后面不附加提交说明的话,会进入修改说明的页面。可以使用快捷键Shift + z + z或者:q!退出。git rm -f test.py要删除的文件在当前工作目录和暂存区域的内容不一致时,删除会跳出提示,此时添加-f参数即可。git rm --cache test.py删除暂存区域的文件(保留工作目录的)。echo *.temp > .gitignore创建一个.gitignore文件,并让Git忽略所有的.temp后缀的文件。develop开发分支,feature功能分支,release预发布分支,hotfix维护分支。reset会移动HEAD所在分支的指向,而checkout命令只会移动HEAD自身来指向另一个分支。所以,checkout命令更加安全。