Git学习与总结三

## Git详细教学地址
 
## GIT中对文件的一切操作均视为修改
## 工作区和暂存区
 
## 撤销修改
1、如果被修改的文件还在【工作区】
撤销方式:
git checkout -- file_name
2、如果被修改的文件已被添加到【暂存区】
撤销方式:
git reset head file_name
然后:
git checkout -- file_name
3、如果被修改的文件已被提交到master
撤销方式:
git reset --hard commit_id
4、如果你要删除一个文件
git rm file_name
删除后记得提交:
git commit -m "rm record"
 
5、如果你误删了一个文件
git checkout -- file_name
## 生成SSH Key命令
ssh-keygen -t rsa -Cyouremail@example.com
 
输入后一直回车:
 
最后在用户主目录下生成id_rsa和id_ras.pub两个文件,如图:
 
## 在本地关联远程仓库(github)SSH链接
git remote add origin  git@github.com :Lauuz/learnGit.git
注意:

1、该命令应在你本地仓库目录下执行

   origin 为远程库的名字,这是git的默认名,可以更改

   Lauuz 为你自己的github用户名

   learnGit.git 为你自己的github远程仓库

2、关联远程仓库可能会有些提示警告,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

3、一旦因网络或其他原因关联远程仓库失败,再次关联时需删除远程库origin,命令如下:

git remote rm origin

或确保本地已生成SSH Key

4、实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。 

如图:
 
## 使用git clone命令克隆远程仓库到本地
亦或者创建好远程仓库之后,使用git clone命令克隆远程仓库到本地,克隆方式如下(SSH):
注意:
如果有多个人协作开发,那么每个人各自从远程克隆一份就可以了。
## 创建与合并分支
## 解决冲突
在合并项目时,若碰到冲突,就要先解决冲突,再进行提交,即:
1、解决冲突
2、git add
3、git commit
最后可以用 git log --graph --pretty=oneline --abbrev-commit 查看git日志
## 分支管理策略
在合并项目时增加 --no-ff 参数会禁用 fast forward 模式,成为普通合并模式,合并后的历史有分支,能看出来曾今做过合并。即:
 
Tip:
Git分支十分强大,在团队开发中应该充分应用,如图:
 
## BUG分支-及时处理紧急BUG方案
可能会有很多时候,开发工作进行到一半,突然要有新的bug需要修复,除了提交本地修改之后来修复bug之外,还可以采取以下方式进行处理:
1、使用 git stash 将工作现场存储起来
2、切换新的bug分支,如issue-101,并修复此bug
3、使用 git add,git commit 提交此bug
4、合并此bug至master主分支
5、删除bug分支issue-101
6、切换分支至dev分支
7、使用 git stash list 查看当前分支存储了多少工作现场
8、使用 git stash pop 恢复工作现场,并删除stash内容
9、因为开发分支dev也有此bug,所以需将修复的bug合并到dev分支上。git rebase master
tip:
1、若出现冲突,需先决绝冲突,然后:
git add .
git rebase --coninue 或
git rebase --skip 或
git rebase --abort
2、若并非是修复BUG,而是开发一个新feature,最好新建一个分支。
若要丢弃一个没有合并过的分支,可以通过 git branch -D branch_name 进行强行删除
 
## 多人协作
1、查看远程库信息,使用 git remote -v
2、本地新建的分支如果不推送到远程,对其他人就是不可见的。
3、从本地推送分支,使用 git push origin branch_name,如果推送失败,先用 git pull 抓取远程的新提交。
4、在本地创建和远程分支对应的分支,使用 git checkout -b branch_name origin,本地和远程分支的名称最好一致。
5、建立本地分支和远程分支的关联,使用 git branch --set-upstream branch_name origin
6、从远程抓取分支,使用 git pull,如果有冲突,要先处理冲突。
## 标签管理
每次发布新的功能时,可以给不同的分支版本作标签,方式如下:
-- 查看标签列表
git tag
-- 打标签,并备注
git tag -a tag_name -m "version information"
-- 使用私钥打标签,并备注
git tag -s tag_name -m "version information"
-- 给指定commit_id打标签,并备注
git tag -a tag_name -m "version information" commit_id
-- 查看标签详情
git show tag_name
-- 删除标签
git tag -d tag_name
-- 推送本地标签至远程
git push origin tag_name
-- 推送所有本地标签至远程
git push origin --tags
-- 删除远程标签【删除远程标签之前,先删除本地标签】
git push origin :refs/tags/tag_name
 
## GitHub说明
## 忽略特殊文件
不同开发语言配置的.gitignore内容也不尽相同,参考地址:
 
## 配置别名
语法:
git config --global alias.custom_alias tag_command

如:

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.unstage 'reset HEAD'

git config --global alias.last 'log -1'

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"

tips:
1、配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。配置文件放哪了?每个仓库的Git配置文件都放在.git/config文件中。
 
2、也可以修改当前用户主目录下(C:\Users\Administrator\)的一个隐藏文件.gitconfig中,如图:
 
## 搭建Git服务器
搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。 假设你已经有sudo权限的用户账号,下面,正式开始安装。
第一步、安装git
第二步、创建一个git用户,用来运行git服务
第三步、创建证书登陆
第四步、初始化Git仓库
第五步、禁用shell登陆
第六步、克隆远程仓库
Tips:
管理公钥,使用 Gitosis,地址  https://github.com/res0nat0r/gitosis
管理权限,使用 Gitolite,地址  https://github.com/sitaramc/gitolite
## Pro Git 中文版
目录列表:
1、起步
2、Git基础
3、Git分支
4、服务器上的Git
5、分布式Git
6、Git工具
7、自定义Git
8、Git与其它系统
9、Git内部原理
鸣谢:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HiiZack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值