git总结(学习笔记)

git 基本步骤:
 
1.git库上新建项目
2.使用gitbash将项目clone下来 git clone ssh地址 
3. git branch 'new_branch'新建分支 
4. git checkout 'new_branch' 切换到新建分支 
5. 在分支中编写结束后 git add . 将变化的文件添加到暂存区 
6. git commit -m '修改后的命名' 提交到本地仓库 
7. git push将本地的分支更新,推送到远程主机 
8. git checkout master 切换到master主分支 
9. git merge origin/new branch 合并新建分支 
10.git push 更新本地仓库,提交到远程主机
 
集中式和分布式:
 
集中式: 是将项目集中存放在中央服务器中,在工作的时候,大家只在自己电脑上操作,从同一个地方下载最新版本,然后开始工作,做完的工作再提交给中央服务器保存。这种方式需要联网,现在云开发就是这样的处理方式。
 
分布式: 只要提供一台电脑作为版本集中存的服务器放就够了,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它也一样干活,只是交换修改不方便而已。而每一台电脑有各自独立的开发环境,不需要联网,本地直接运行,相对集中式安全系数高很多。
 
配置名称:
git config --global user.email "邮箱"
git config --global user.name "用户名"
 
本地创建新仓库:
git init
 
接手旧仓库:
git clone “url地址”
 
查看状态: 
git status
 
忽略文件配置:
touch .gitignore  //新建.gitignore文件
在此文件中写入要忽略的文件名
*.txt 所有txt都忽略,不会提交到暂存区
!a.txt 除了a都提交到暂存区
/vendor vendor文件夹被忽略
 
从版本库中删除资源:
git rm '名称'  //本地和仓库均删除
git rm --cached '名称' //仅删除仓库内的文件
 
修改文件名
git mv c.js index.js //将c改为index
 
获取提交日志
git log -p
输出历史改动记录
git log --oneline
将记录按照行来显示
git log -2
指定显示前两条日志
git log --name-only
文件的变化
git log --name-status
文件内容的变化
 
修改最新一次提交时-m后的描述
git commit --amend //可进入vim 点击i->修改->ESC->:wq(保存退出)
 
管理暂存区(购物车)的文件
git rm --cached 文件名   //撤销第一次提交
git reset  HEAD 文件名   //撤销第二次及以后提交
git checkout -- 文件名  //文件恢复到之前的状态
 
简写功能
git config --global alias.a add     //git a .
subl .gitconfig //也可使用sublime打开config文件进行修改 
 
分支功能
git branch  //显示分支列表
git branch  ask //新建分支ask
git checkout -b bbs //新建分支bbs
git checkout ask  //切换到分支ask
git branch -d ask //删除ask分支
 
处理分支冲突
打开冲突的文件 vim 文件名 修改结束后再提交
 
合并分支
git branch --merged  //查看当前分支已经合并的分支
git branch --no-merged  //查看当前分支没有合并的分支
 
临时暂存区(正在编辑一个分支,没有提交,需切换到另一个分支时应用)
git stash //将当前活动分支暂存起来
git stash list //查看暂存区列表
git stash apply  //恢复暂存区
git stash drop stash@{0} //删除暂存区
 
git tag标签
git tag v1.0 //给当前项目加版本标签 
 
生成zip压缩包
git archive master --prefix='hdcms/' --forma=zip > hdcms.zip
 
系统别名
subl .bash_profile //打开文件设置别名
 
//在.bash_profile文件中添加以下代码:
alias gs = "git status"
alias gc = "git commit -m"
alias gl = " git log --graph --pretty='\''%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\'' --abbrev-commit"
alias gb = "git branch"
alias ga = "git add ."
alias go = "git checkout"
 
git回滚到任意版本
git log -3 //先显示提交的日志
git reset --hard 版本号 //退回之前的版本
git push -f origin master //强制提交
 
合并分支产生合并记录问题(子分支新增提交,并且master也新增提交)
1.主分支提交后,子分支再次提交,主分支合并子分支不会产生问题
2.自分支提交后,主分支发生改变再提交,主分支合并子分支会产生问题
为防止这种问题,将自分支的提交点后移至主分支提交后再进行合并即可:
git rebase master //在子分支写入,将子分支的提交时间放在主分支再次提交时间之后
git checkout master //切换到主分支
git merge ask //合并子分支
 
生成github中SSH的密钥
1.ssh-keygen -t rsa -C "自己的github邮箱账号"
2.cd ~/.ssh  //进入密钥文件
3.复制密钥
4.在github页面个人头像下拉菜单中选择settings
5.选择SSH and GPG keys选项,在右侧SSH keys中加入密钥
6.使用git clone "SSH地址"可以直接拉取github中的项目
 
本地与github远程服务器关联
1.git remote add origin "SSH地址(git@github.com:xiangmu/xm.git)"
2.git remote -v //查看远程库
3.git push -u origin master //推送数据到远程仓库
 
本地分支提交到远程
git push --set-upstream origin '分支名'
 
本地拉取远程分支
git pull origin '远程分支名':'本地分支名'
 
删除远程分支
git push origin --delete 分支名
删除本地分支
git branch -d 分支名
posted @ 2019-10-23 14:57  Katherine蓝羽  阅读(45)  评论(0)    收藏  举报