1:git初始化配置
- 1.1初始化
git init #让git管理当前目录
- 个人信息配置
2:个人信息配置
git config --list
git config --global user.email "xxxx@qq.com"
git config --global user.name "fakerxx"
2:基本操作
git add . #添加到暂存区,被git追踪管理
git commit -a -m "注释"
3:回滚到过去特定版本
git reset --hard c35231b
4:回到未来
git reflog
git reset --hard 版本号
git checkout -- xxx.html
5:分支
-
查看分支
git branch
-
创建分支
git branch 分支名称
-
切换分支
git checkout 分支名称
-
创建并切换到分支
git checkout -b dev
-
合并分支
git merge 合并的分支 注意切换分支再合并
-
删除分支
git branch -d 要删除的分支
6:远程仓库管理
- 6.1:给远程仓库起别名
手动在github上创建一个仓库
git remote add origin 远程仓库地址(ssh)
推荐使用sshd地址
- 6.2向远程仓库推送代码
git push -u origin master
#origin 远程仓库地址的别名
#master 本地分支名
#-u:默认推送的仓库名和分支,以后即可直接用git push 代替git push origin master
#注意推送分支的时候,使用git push origin dev
- 6.3克隆远程仓库代码
git clone 远程仓库地址(ssh地址)
#内部已经实现git remote add origin 远程仓库地址(ssh)
git checkout 分支
shh免密操作
ssh-keygen -t rsa -C "xxxxx@qq.com"
#:-C注释
cd ~/.ssh
id_rsa.pub拷贝到github上的SSH keys
实例流程:
1:在家里上传代码:
-
1:给远程仓库起别名 git push -u origin master 2:向远程仓库推送代码 git push -u origin 分支
2:到公司新电脑上第一次获取代码
-
1:克隆远程仓库代码 git clone 远程仓库地址(ssh地址) 2:切换分支 git checkout 分支
3:在公司进行开发
-
1:切换到dev分支进行开发 git checkout dev 2:把master分支合并到dev git merge master (仅执行一次) 3:继续开发 4:提交代码 git add . git commit -m "注释" git push origin dev
4:回到家中继续写代码
-
1:切换到dev分支 git checkout dev 2:拉代码 git pull origin dev 3:继续开发 4:4:提交代码 git add . git commit -m "注释" git push origin dev
5:在公司继续开发
-
1:切换到dev分支 git checkout dev 2:拉代码 git pull origin dev 3:继续开发 4:4:提交代码 git add . git commit -m "注释" git push origin dev
6:开发完毕要上线
-
公司 1:将dev分支合并到master分支 git checkout master git merge dev git push origin master 2:把dev分支也推送到远程 git checkout dev git merge master #保证dev和master代码都是最新的 git push origin dev 在家: git pull origin dev git pull origin master
7:rebase操作----使提交记录变简洁
-
git rebase -i HEAD~3 #合并最近的3次提交,注意push上远程的提交不要混在一起 #修改---s
-
git log --graph --pretty=format:"%h %s" #图形化显示提交记录%h代表hash,%s 代表记录的注释
8:标签:
git tag -a v1 -m "第一版" #把当前提交的版本打一个版本标签
git push -u origin --tags #推送标签
git checkout -b dev #创建dev分支并且切换到dev分支
9:给开源项目贡献代码
-
1:fork源代码 将别人的源代码拷贝到自己的仓库 2:在自己的仓库进行修改 git clone xxx.com 3:修改代码并且提交到自己仓库 git add . git commit -m "修复了一个bug" git push origin master 4:给源代码作者提交修复代码的pull request申请
10:git三个配置
- 1:当前项目配置文件 cat 项目路径/.git/config
git config --local user.email="xxx.com"
git config --local user.name="xx"
- 2:全局配置文件 cat ~/.gitconfig
git config --global user.email="xxx.com"
git config --global user.name="xx"
- 3:系统配置文件 /etc/.gitconfig --需要root权限
git config --system user.email="xxx.com"
git config --system user.name="xx"
11.免密码登录
- URL体现
原来的http地址:https://github.com/faker55/learngit.git
修改成免密登录: https://用户名:密码@github.com/faker55/learngit.git
比如:git remote add origin https://用户名:密码@github.com/faker55/learngit.git
git push origin master
- SSH实现
1:生成公钥(~/.ssh/id_rsa.pub)和私钥(~/.ssh/id_rsa)
ssh-keygen -t rsa -C "rhel7"
2:拷贝公钥的内容到github上的setting/SSh and GPG keys/SSH kyes中。
3:在git本地中配置ssh地址
git remote add origin ssh地址
- git自动管理凭证
根据操作系统类型,存放方式不一样
12:git不再管理需要忽略的文件
-
.gitignore文件中写需要的忽略文件 #一般忽略数据库的相关文件 files/ #会忽略文件夹下的文件 *.h #以.h结尾的都忽略 !a.h #除了a.h文件除外
-
github/gitignore #github上的项目,以某种语言开发的项目的推荐忽略文件
13:git任务管理相关
-
1:issues:文档以及任务管理,issue提交 2:wiki:项目简介
PS:向wuqeiqi老师学习git的笔记