参考:
廖雪峰
菜鸟
高质量的Git中文教程.
github设置
1、ssh-keygen -t rsa -C "123@126.com"生成秘钥
2、在github设置ssh-key为所生成的key
3、ssh -T git@github.com 检测是否配置成功
4、配置git用户信息:
$ git config --global user.name "name"//你的GitHub登陆名
$ git config --global user.email "123@126.com"//你的GitHub注册邮箱
5、关联一个远程库命令
$ git remote add origin git@github.com:flora0103/example.git
git设置
1、创建本地仓库
git init learngit或
midir learngit;git init
默认生成.git的隐藏文件
2、git提交文件
加入暂存区:git add readme.txt
提交:git commit -m '提示说明的信息'
本地仓库操作
1、(文件创建:touch)
touch hello.txt
2、git status -s:文件状态,显示未add的文件“??”
git add hello.txt: 显示“A helllo.txt”
(vim hello.txt修改文件,esc+:wq退出保存)
git status -s:文件状态,显示未add的文件“AM hello.txt”
重新add即可,add后状态为"A hello.txt"
3、版本回退:
git reset --hard HEAD^ :本质移动head的指向
4、git log可以查看提交历史,以便确定要回退到哪个版本
git reflog查看命令历史,以便确定要回到未来的哪个版本
注意:每次修改都要先add再commit
第一次修改->git add->第二次修改->git add->git commit
5、丢弃修改:
工作区修改:
$ git checkout -- readme.txt
在暂存区时,恢复到与暂存区一致
没在暂存区,与版本库一致
暂存区的修改撤销掉,重新放回工作区:
git reset HEAD <file>
6、创建分支:
git checkout -b dev或
git branch dev
git checkout dev
查看分支:
git branch
切换分支:
git checkout <name>
合并某分支到当前分支:
git merge <name>
删除分支:
git branch -d <name>
强行删除
git branch -D <name>
7、不同分支同一个级别的合并问题:
手动修改
8、查看分支结构:
gitk --simplify-by-decoration --all
9、不删除分支记录的合并:
git merge --no-ff -m "merge with no-ff" dev
9、修改bug时先将当前工作现场“储藏”起来:
git stash
恢复:
git stash apply恢复,但是恢复后,stash内容并不删除,
你需要用git stash drop来删除;
git stash pop,恢复的同时把stash内容也删了
远程仓库操作
1、推送到远程仓库:
git push origin master
远程仓库更新,提交冲突,重新pull远程仓库
修改后重新提交:
git pull
2、查看远程库信息:
git remote -v
3、建立本地分支和远程分支的关联:
git branch --set-upstream branch-name origin/branch-name;
4、fork:
从别人的远程仓库拷贝到自己的远程仓库
补充:
常用命令:
git add .或filename
git status -s
git commit -m 'first commit'
git push -u origin master
ssh秘钥提交与账户提交
不同项目库共用ssh
使用公钥key:
ssh key:gitlab
ssh key:github
1、从仓库建立项目
git clone "url"
git add .
git status -s
git commit -m 'first commit'
git push -u origin master
2、本地建立项目(仓库需建立同名项目,区分不同的仓库)
git mkdir projectname
git init
git remote add origin "url"
git add .
git commit -m 'first commit'
git push -u origin master
1、git常用命令
git config:个人信息配置
git clone:克隆远程项目到本地
git fetch:远程的更新拉取到本地
git rebase:本地分支与另一个分支合并
git init:初始文件夹为git仓库
git remote:远程
git commit:提交本地
git push:提交远程
2、git使用
- git clone “url”
- git remote -v
- git remote --help
- git remote add bd “url” 添加源
- git remote rm bd 删除源
- git config
- git fetch远程拉取到本地
- git rebase 合并本地分支
git的规范化使用
1、commit有错误,但未push
git rebase -i [SHA] 上次提交前的sha
master——最为稳定功能最为完整的随时可发布的代码;
hotfix——修复线上代码的 bug;
develop——永远是功能最新最全的分支;
feature——某个功能点正在开发阶段;
release——发布定期要上线的功能。
git
1、rebase与merge区别
merge:合并创建新节点
预期冲突较多时使用merge
rebase:将分支合并到主分支上
本质先删除分支节点重新提交到主分支
发生冲突不易解决
2、基本命令
git init 初始化
git add . 添加到暂存区
git commit -m "msg" 提交本地仓库
git status 转态
git diff filaname 查看文件修改
3、版本回退
查看提交历史记录:
git log
git log –pretty=oneline
回退:
git reset --hard HEAD^ 回退上一个
回到回退前版本:
git reflog
git reset --hard 版本号
4、修改与删除
修改:
git checkout -- filename:
修改未提交到暂存区:回退到与版本库相同
已添加到暂存区再修改:回退到暂存区的状态
注:没有"--"为创建分支
删除版本库:
本地删除或rm file删除
再提交则删除版本库
5、远程仓库
–u参数:推送的远程新的master分支,本地分支和远程分支关联
git push origin master
克隆:
git clone "url"
创建并切换分支:
git checkout -b dev
查看分支:
git branch
合并分支:
git merge dev dev分支合并到当前分支
git merge –no-ff -m “注释” dev 合并不会删除分支信息
merge时冲突:
git status 查看冲突文件
cat filename 修改文件
删除分支:
git branch -d dev
6、bug分支
当前修改未完成不能提交
但存在紧急修改bug:
git stash 保存现场
git checkout -b 404-issue 新建修改分支
修改完合并到主分支并删除404-issue分支
git checkout dev 切换到开发分支
查看保存现场:
git stash list
恢复删除:
git stash apply
git stash drop
或
git stash pop
7、多人协作
查看远程分支:
git remote
git remote -v
创建本地分支:
git checkout –b dev origin/dev
关联远程分支:
git branch --set-upstream dev origin/dev