一、打开git bash,先设置用户名和用户邮箱。
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
然后cd命令选择一个目录进去,选择一个文件夹或者mkdir新建一个文件夹。
$ git init
可以将一个文件夹设为git仓库。在里面随便建一个文件,比如readme.txt
$ git add readme.txt
将文件添加到仓库,也就是称为stage的暂存区。
git commit -m "wrote a readme file"
将文件提交到仓库,也就是版本库master。
二
$ git status
查看git工作区的内容
$ git diff
查看修改的内容
三
$ git log
查看git提交历史
$ git reset --hard commit_id
返回到commit_id所对应的版本
--soft
参数 将上一次的修改放入staging area
--mixed
参数 将上一次的修改放入working directory
--hard
参数 直接将上一次的修改抛弃
$ git reflog
查看git命令历史
四
$ git checkout -- file_name
没有执行add之前,撤销工作区中对file_name文件的修改。
$ git reset HEAD file_name
没有执行commit之前,撤销暂存区区中对file_name文件的add,返回到工作区。
五
$ git rm file_name
删除file_name文件。
如果确认删除则commit,如果误删,可以执行前面的 git checkout -- file_name命令撤销。
$ git reset HEAD^ file_name
如果确认删除之后了才觉得是误删,可以通过此命令返回到误删之前的工作区。
六
创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
七
$ git remote add origin git@github.com:wanderlustlee/learngit.git
关联GitHub用户名为wanderlustlee库名字为learngit的远程库。
$ git push -u origin master
将本地库的所有内容推送到远程库。
八
$ git clone git@github.com:wanderlustlee/gitskills.git
克隆GitHub用户名为wanderlustlee库名字为gitskills的远程库。
九
查看分支:
$ git branch
创建分支:
$ git branch <name>
切换分支:
$ git checkout <name>
创建+切换分支:
$ git checkout -b<name>
合并某分支到当前分支:
$ git merge <name>
$ git merge --no-ff -m "merge with no-ff" dev
不使用fast forward方式合并分支,此方式会创建一个新的名为“merge with no-ff”的commit
删除分支:
$ git branch -d <name>
十
保存工作现场:
$ git stash
查看所有工作现场:
$ git stash list
Git把stash内容存在某个地方了,需要恢复一下,有两个办法:
一是用$ git stash apply恢复,但是恢复后,stash内容并不删除,你需要用$ git stash drop来删除;
另一种方式是用$ git stash pop,恢复的同时把stash内容也删了:\
十一
查看远程库信息:
$ git remote -v
从本地向远程库推送分支:
$ git push origin branch_name
从远程库抓取新的提交:
$ git pull
在本地创建与远程库分支对应的分支:
$ git checkout -b branch_name origin/branch_name
建立本地分支与远程库分支的关联:
$ git branch --set-upstream branch_name origin/branch_name
十二
在最新的commit上面打上一个标签:
$ git tag <tag_name>
查看所有标签:
$ git tag
给commit号为3628164的commit上面打上一个标签有说明的标签:
$ git tag -a v0.1 -m "version 0.1 released" 3628164
查看有说明标签的内容:
$ git show <tag_name>
十三
向远程库推送一个标签:
$ git push origin <tag_name>
查看推送过的所有标签:
$ git push origin --tags
删除本地的标签:
$ git tag -d <tag_name>
删除远程库的标签:
$ git push origin :refs/tags/<tag_name>
十四
给status命令起一个别名:
$ git config --global alias.st status