git笔记
ls -ah 查看隐藏的文件(linux系统下面)
git add 文件名 //提交到暂存
git commit -m 'xxxx' //提交到本地默认master
git reset --hard head //回退到当前版本(没有意义)
git reset --hard head^ //回退到上一个版本
git reset --hard head '版本号(不用输入完整)'
git reset HEAD readme.txt 把暂存区的修改回退到工作区
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销
git log
git reflog //有时候回退版本,最新的版本丢失了,可以通过这个命令找回版本号
git remote add origin git@github.com:michaelliao/learngit.git //把本地仓库推送到远程(和远程仓库关联)
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
git checkout -b dev
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
$ git branch dev$ git checkout dev
git merge命令用于合并指定分支到当前分支
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge
删除分支:git branch -d
用git log --graph命令可以看到分支合并图。
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
//本地新建的分支,在远程也创建对应分支,方法一
$ git push origin test:master // 提交本地test分支作为远程的master分支
$ git push origin test:test // 提交本地test分支作为远程的test分支
$ git push origin :test // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心
//本地新建的分支,在远程也创建对应分支,方法二
git checkout develop //进入develop分支
git checkout -b fromdevelop //以develop为源创建本地分支fromdevelop
git push originfromdevelop //将本地fromdevelop分支作为远程fromdevelop分支
git push origin :fromdevelop //删除远程fromdevelop分支
//end
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。
如果要丢弃一个没有被合并过的分支,可以通过git branch -D 强行删除。
$ git branch--set-upstream-to=origin/dev dev //指定本地dev分支与远程origin/dev分支的链接
查看远程库信息,使用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;
命令git tag 用于新建一个标签,默认为HEAD,也可以指定一个commit id;
命令git tag -a -m "blablabla..."可以指定标签信息;
命令git tag可以查看所有标签。
命令git push origin 可以推送一个本地标签;
命令git push origin --tags可以推送全部未推送过的本地标签;
命令git tag -d 可以删除一个本地标签;
命令git push origin :refs/tags/可以删除一个远程标签。
本地生成ssh密钥命令
ssh-keygen -t rsa –C “youremail@example.com”
在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件
id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
mac如何获取本地电脑公钥?打开终端输入 $open~/.ssh
先 git clone 整个仓库,然后 git checkout tag_name 就可以取得 tag 对应的代码了。
但是这时候 git 可能会提示你当前处于一个“detached HEAD" 状态,因为 tag 相当于是一个快照,是不能更改它的代码的,如果要在 tag 代码的基础上做修改,你需要一个分支:
gitcheckout -b branch_name tag_name
这样会从 tag 创建一个分支,然后就和普通的 git 操作一样了。
//git 如何获取指定 tag 代码
http://yijiebuyi.com/blog/eacf4d053fad77affffae397d9af7172.html
https://blog.csdn.net/youzhouliu/article/details/78952453