Git command
TortoiseGit: http://download.tortoisegit.org/tgit/previews/
msysGit: https://msysgit.github.io/
初始化Git仓库
#git init
添加文件test.py到Git 仓库
#git add test.py //添加文件到stage
#git rm test.py //删除文件test.py
#git mv test.py test2.py //更改test.py为test2.py
#git commit –m “add test.py” //commit文件到local 库
#git commit –a //commit所有的文件
回退
#git checkout –test.py //workspace:用stage的test.py重写工作区的test.py文件
#git checkout . //workspace:重写工作区的所有文件
#git reset HEAD test.py //stage
#git reset –hard commit_id //local repo:回退版本库。HEAD^代指前一个版本。
#git revert //创建一个commit来覆盖当前的commit,指针向后移动,而reset指针向前移动。
查看log
#git log //显示基本信息
#git log –pretty=raw //显示所有信息
#git log –pretty=oneline //一行显示
# git log --graph --pretty=oneline //查看分支合并图
#git reflog //查看所有具有commit_id的日志
#git status
比较
#git diff //workspace vs stage
#git diff –cached //stage vs local repo
#git diff HEAD //local vs local repo
分支
#git branch //查看分支
#git branch –r //查看远程分支
#git branch –a //查看所有的分支
#git branch dev //创建分支dev
#git checkout dev //切换到分支dev
#git checkout –b dev //创建并切换到dev分支
#git branch –d dev //删除分支dev
#git branch –D dev //强制删除分支dev
#git checkout –b dev origin/dev //在本地创建和远程分支对应的分支
#git branch –set-upstream dev origin/dev //建立本地分支和远程分支的关联
Merge
#git merge dev //合并分支dev到当前分支
#git merge –no-ff –m “merge with no-ff” dev //禁用fast-forward, 也就是保留分支的相关信息
远程库(origin为远程服务器)
#ssh-keygen –t rsa –C “youremail@example.com” //创建SSH Key。存放在~/.ssh下。
#git clone git@github.com:minirenhappy/gitskills.git //克隆远程库到本地
#git remote –v //查看远程库
#git remote add origin git@github.com:minirenhappy/gitskills.git //关联到远程库
#git remote rm origin //删除远程库
Pull (相当于 fetch+merge , 所以fetch更安全一些)
#git pull remoteName localBranchName
#git pull origin master //拉取远程仓库的origin到master
Fetch
#git fetch origin master
#git rebase origin/master //把本地库的提交取消并作为patch,最后把patch应用于本地库上,可以保证提交树的整洁。
#git push
Push到远程库
#git push remoteName localBranchName
#git push –u origin master //第一次推送master到远程库
#git push origin master //推送到远程库。
#git push origin dev:master //提交本地的dev分支作为远程的master分支
#git push origin dev:dev //提交本地的dev分支作为远程的dev分支
#git push origin dev //创建远程分支(本地分支push到远程)
Stash
#git stash //将工作区现场存储起来,以后再恢复。用于修bug。
#git stash list //查看保存的工作区现场
#git stash apply //恢复工作区现场
#git stash drop //删除stash内容
#git stash pop //恢复工作区的同时删除stash的内容
#git stash apply stash@{0} //恢复指定的工作区
Tag
#git tag //查看标签
#git tag v1.0 //创建标签v1.0
#git tag –a v1.0 –m “this is version 1.0” //指定标签信息
#git tag –s v1.0 –m “this is version 1.0” //用PGP签名标签
#git push origin v1.0 //推送本地标签到远程
#git push origin –tags //推送所有的本地标签到远程
#git pull origin –tags //拉取远程的标签到本地
#git tag –d v1.0 //删除本地标签
#git push origin :refs/tags/v1.0 //删除远程标签
忽略文件、文件夹
#仓库根目录下创建.gitignore文件。写入
#target
#*.pyc
Github
#可以Fork任何开源仓库到自己的github账户,并且拥有Fork后的仓库的读写权限。
#可以推送pull request给官方仓库来贡献代码。