学习廖雪峰git教程的笔记
sudo apt-get install git安装需要配置local信息
|
|
git init,将当前目录变成Git可以管理的仓库git add "existed file/folder,将该文件提交到stage,当后面是文件夹时,提交该文件夹下所有内容git commit -m "describe of commition",将git add提交到stage的内容提交到仓库中。git status查看仓库当前状态。git diff "file name",比较仓库中filename文件和工作区中该文件的区别git log或git log --pretty=online,显示从最近到最远的提交日志gitk可进入图形界面git reset --hard HEAD^,将工作区中的内容回溯到上一次提交之前。HEAD表示当前版本,上一个版本时HEAD^,上上个版本是HEAD^^,往前N个版本就是HEAD~N。git reset --hard之后也可以接版本ID(很长的一串数字)。git reflog用来记录每一次命令,上面有之前提交的版本号,这样方便回溯或切换到之后版本。git checkout -- file,检出file在库中的版本,这会覆盖掉工作区中的file,从而实现的功能是撤销工作区文件的删改,git reset HEAD file把stage中的file撤销掉git rm "file"删除仓库中file文件。使用完该命令之后就不能从仓库中git chechout "file"检出该文件了。如果只是本地删除,可以检出恢复。
ssh-keygen -t rsa -C "your email@example.com",创建SSH Key,一路回车下去,就会发现在用户目录下有.ssh目录,目录中会有id_rsa和id_rsa.pub,这两个是SSH Key密钥对,id_rsa是私钥,不能泄露,id_rsa.pub是公钥,可以放心的告诉别人。
登陆GitHub,点击右边自己的头像打开Setting,左边的列表中会有SSH and GPG keys,点击之后在右边会看到New SSH Key,填上Title,在Key文本框里粘贴id_rsa.pub中的内容。点Add SSH Key,就可以看到已经添加的Key。若是希望每次提交的时候不输入密码,需要将push方式改为ssh方式,而不是https方式。可以通过修改当前repository目录下.git/config中的url
|
|
关联远程仓库和本地仓库,在GitHub创建好空的repository之后,根据提示关联已经有的本地仓库,在本地仓库目录下执行
|
|
提交本地仓库所有内容,-u表示将本地master分支与远程的origin分支关联起来,在以后的推送和拉取时可以简化命令为git push origin master将本地库的内容推送到远程。
git clone https://github.com/your_name/repository_name.git将远程库中内容拷贝到本地,也可以达到关联的目的。
git remote -v查看远程库信息
git pull 从远程抓取分支,每次提交本地库到远程库之前执行,如有冲突,先处理冲突.
分支相关命令
|
|
分支合并:
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,当合并分支出新冲突时,用git status查看具体情况,再手动修改合,排除冲突后进行合并。
git log --graph,查看分支合并图
--no-ff,合并分支时使用此参数,合并后的历史有分支,可以看出来哪些曾经修改过。
git stash,储存当前工作现场,使用git stash list查看存储的工作现场,使用git stash applay恢复(需要使用git stash drop删除stash内容), 或者使用git stash pop恢复的同时将stash的内容删除
标签操作git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;git tag -a <tagname> -m "blablabla..."可以指定标签信息;git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;git tag可以查看所有标签。git push origin <tagname>可以推送一个本地标签;git push origin --tags可以推送全部未推送过的本地标签;git tag -d <tagname>可以删除一个本地标签;git push origin :refs/tags/<tagname>可以删除一个远程标签
其他git config --global color.ui true:让Git显示颜色,会让命令输出看起来更醒目
.gitignore忽略特殊文件,用户可以修改指定忽略的文件
原文:https://www.cnblogs.com/lijianming180/p/12099734.html