年底了,重温了下git知识,这里也做个记录,方便自己与刚好路过的你查询,若发现书写不当的地方,欢迎指正。
git安装:https://git-scm.com/downloads
检查git安装是否成功:安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
创建版本库:新建一个空白文件夹,在命令行工具里进入该文件,输入git init
将文件添加到git仓库:
第一步:git add xxx.txt 第二步:git commit -m "这里输入本次提交说明" 查看仓库状态:git status查看文件修改内容:git diff xxx.txt
查看历史记录:git log
查看简短的历史记录:git log --pretty=oneline
退回上一个版本或者退回下一个版本:git reset --hard id (id指的是版本号,版本号没必要写全,前几位即可)
查看每一次命令:git reflog
丢弃工作区的修改(让文件回到最近一次git commit 或git add时的状态):git checkout -- xxx.txt
将暂存区的修改退回到工作区:git reset HEAD xxx.txt
创建SSH Key(本地Git仓库和github仓库之间是通过SSH加密的),打开 git bash ,输入:
ssh-keygen -t rsa -C "youremail@example.com" (如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。)将本地仓库关联上一个空的github仓库:
git remote add origin git@github.com:githubName(github名称)/githubRep(github仓库名).git 将本地库所有内容推送到远程库上:git push -u origin master(由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。)将远程库克隆到本地:git clone git@github.com:githubName(github名称)/githubRep(github仓库名).git
创建并切换到<name>分支:git check -b <name> (git checkout命令加上-b参数表示创建并切换)
创建分支:git branch <name>
切换分支:git checkout <name>
查看分支 git branch
将指定分支合并到当前分支:git merge <name>(<name>为指定分支)
删除分支:git branch -d dev(dev为指定删除分支)
查看分支合并图:git log --graph
查看分支合并图(省略版):
git log --graph --pretty=oneline --abbrev-commit 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。 git merge --no-ff -m "merge with no-ff" <name> (因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去) 将当前工作现场“储藏”起来(前提是工作现场里的文件都已经add过):git stash查看“储藏”的工作内容:git stash list
恢复stash内容有两个办法:
方法一:git stash apply stash@{0},恢复后stash内容并不删除,需要用git stash drop删除 方法二:git stash pop 恢复的同时把stash内容也删了强行删除一个没有合并过的分支:git branch -D <name>
查看远程库信息:git remote
查看远程库详细信息:git remote -v
本地新建的分支如果不推送到远程,对其他人是不可见的。
推送分支:git push origin master (将本地master分支推送到远程库origin上)
从本地推送分支,使用 git push origin branch-name ,如果推送失败,先用 git pull抓取远程的新提交
抓取远程的新提交: git pull
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
在当前分支的当前新建一个标签:git tag <tagName> 或者 git tag <tagName> commitId
新建标签并指定标签信息: git tag -a <tagname> -m "blablabla..." commitId
查看所有标签:git tag
推送一个本地标签:git push origin <tagname>
推送全部未推送过的本地标签:git push origin --tags
删除已关联的名为origin的远程库:git remote rm origin
让git适当的显示不同的颜色:git config --global color.ui true