wenbao与git

关于git的教程,前人之述备矣

时势造英雄,乱世出枭雄!!

简单自我总结一下

本地文件--->暂存区--->分支

 初始化 

git config --global user.name "Your Name"
git config --global user.email "email@example.com"


SSH
生成ssh
ssh-keygen -t rsa -C "wenbao@163.com"
.ssh文件夹下面产生id_rsa(私钥)和id_rsa.pub(公钥)
将公钥复制到sshkey里面

ssh -T git@github.com//显示欢迎界面则配置成功




创建文件夹管理git

mkdir gitee_test
cd gitee_test
git init//文件夹下面产生.git文件,勿动!

创建文件test.txt

git add test.txt
git commit -m "tset file"
git status
对比不同
git diff test.txt


版本控制

git log
git log --pretty=oneline
git log --graph//以图标方式显示


HEAD(当前版本)
HEAD^(前一个版本)HEAD^^...
git reset --hard HEAD^

git reset --hard 3b8a109
git reflog



撤销

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。


删除
本地删除导致不一致
git rm test.txt(删除版本库)



git checkout -- test.txt(撤销删除,库中恢复到本地) 
远程管理

pull命令(pull=fetch+merge)
git pull --rebase origin master

git remote add origin git@server-name:path/repo-name.git
(如果提示之前远程过可以git remote rm origin然后再执行)

git push -u origin master//第一次推送master分支的所有内容
git push origin master//此后推送修改


通过克隆下载到本地,多人协作开发
git clone git@server-name:path/repo-name.git


创建与合并分支

git branch //查看分支
git beanch name//创建分支
git chekout name//切换分支
git chekout -b name//创建并切换分支
git merge name//合并到当前分支
git branch -d name //删除分支


git branch -D <name>//强制删除一个没有被合并的分支


储藏分支(bug分支)
git stash
git stash list
git stash apply//恢复分支
git stash drop//删除分支
git stash pop//恢复并删除分支
git stash apply stash@{0}//有多个分支的时候利用list名恢复

 
多人协作
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 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 alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
 



只有不断学习才能进步!

原文地址:https://www.cnblogs.com/wenbao/p/8007142.html