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 分支名

浙公网安备 33010602011771号