个人整理git的基本用法

完整看完廖雪峰的git教程,把主要过程自己写一遍,开始自己的第一篇博客

1、在一个空文件夹 
$ git init
创建git的管理仓库

2、把文件添加到仓库
$ git add [file_name]
没有任何显示则表示成功

3、把文件提交到仓库
$ git commit -m "[附带信息,提示本次修改]"
[master (root-commit) cb926e7] wrote a readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt
成功时类似以上格式

4、提交所有文件
$ git add .
把文件夹下所有文件提交

5、查看工作区状态
$ git status


6、查看修改内容
$ git diff


7、查看历史纪录
$ git log
记录中带有commit id,是每次提交的id,用于版本回退

8、版本回退
$ git reset --hard HEAD^
回退一次

$ git reset --hard HEAD^^
 回退两次

$ git reset --hard HEAD~100
回退一百次

$ git reset --hard [commit_id]
回退到具体版本

9、查看命令历史
$ git reflog
确定退回版本

10、撤销改动
1 撤销工作区的改动
$ git checkout -- [file_name]

2 撤销暂存区的改动
$ git reset HEAD [file_name]

3 撤销版本库的改动,则采用版本回退,前提是没有推送到远程库

11、删除文件
1 删除工作区文件
$ rm [file_name]
删除工作区
2 确定要从版本库中删除文件,则
$ git rm [file_name]

并且
$ git commit
则文件从版本库中删除

3 误删文件,恢复

$ git checkout -- [file_name]
git checkout的本质是用版本库里的版本替换工作区的版本

12、远程仓库
1 Git本地仓库和Github仓库之间的传输通过SSH加密
创建SHH key
$ ssh-keygen -t rsa -C "[email]"
生成的key可以在.ssh文件夹下找到 id_rsa.pub公钥文件,并在github上添加ssh key

2 Git本地仓库连接远程仓库 
$ git remote add origin [project_name]
远程库的默认名字就是 origin

3 把Git本地仓库的所有内容推送到远程库上
$ git push -u origin master
实际上是把当前分支master推送到远程
-u 参数 把本地的master分支内容推送到远程的master分支,并且把本地master和远程master关联,以后推送和拉取都可以简化命令
往后提交,可以通过
$ git push origin master
把本地master分支的修改推送到Github

SSH警告
第一次使用Git的clone或者push,会得到一个警告:
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?
需要确认Github的key的指纹信息是否真的来自github服务器,输入yes即可
然后Git会输出一个警告,告诉github已经把key添加到本机的信任列表
Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
13、从远程库克隆
从github上把项目克隆到本地仓库
$ git clone [project_name]
项目地址采用ssh支持的原生git协议速度最快

14、git的分支 , git鼓励大量使用分支
1 创建分支 切换分支
$ git branch [branch_name] 创建分支
$ git checkout [branch_name] 切换分支
以上操作可以合并
$ git checkout -b [branch_name]

2 查看当前分支
$ git branch
3 合并指定分支到当前分支

$ git merge [branch_name]

4 删除分支
$ git branch -d [branch_name]

15、分支冲突
当a分支和b分支各自都分别又新的提交



当我们想要合并分支,会产生冲突,$ git status 可以告诉我们冲突的文件,也可以直接查看冲突文件
需要手动修改
$ git log --graph --pretty=oneline --abbrev-commit
可以查看分支的合并情况
16、分支管理策略
想要查看分支合并信息需要关闭Fast forward模式
$ git merge --no-ff -m "[提交信息]" [branch_name]
master 分支应该是稳定,用于发布版本
平时工作都在自己的分支,分支不稳定
17、Bug分支
当前工作无法完成但是需要创建分支修复bug时,可以输入
$ git stash
保存当前的工作现场

1 查看保存的工作现场
$ git stash list
2 恢复现场
$ git stash apply
3 删除保存的现场
$ git stash drop
以上操作可以合并
$ git stash pop

18、强制删除没有被合并的分支
$ git branch -D [branch_name]

19、多人合作
1 查看远程库的信息
$ git remote

2 查看更详细的信息
$ git remote -v

3 推送分支
$ git push origin [branch_name]
一般推送主分支master 和自己的工作分支

20、创建远程分支
$ git checkout -b [branch_name_local] origin{远程库的名字}/[branch_name_online]

21、多人合作工作模式
1 向服务器推送自己的修改
@ git push origin [branch_name]
2 如果推送失败,因为远程分支比本地的更新,需要先
$ git pull
3 合并,如果有冲突,则需要本地解决冲突并提交
4、再次进行1推送
如果git pull 提示“no tracking information"说明本地分支和远程分支的链接关系没有创建,需要用命令
$ git branch --set-upstream [branch_name_local] origin/[branch_name_online]

22、创建标签
先切换到打标签的分支上 ,创建标签使用
$ git tag [tag_name]

查看标签
$ git tag

查看历史提交的commit id
$ git log --pretty=oneline --abbrev-commit
根据commit id打标签
$ git tag [tag_name] [commit_id]
查看标签信息
$ git show [tag_name]
创建带有说明的标签 用-a提交标签名,-m指定说明文字
$ git tag -a [tag_name] -m "[说明文字]" [commit_id]

删除标签
$ git tag -d [tag_name]

推送标签到远程
$ git push origin [tag_name]
推送所有标签到远程
$ git push origin --tags

删除远程标签
1 首先本地删除
$ git tag -d [tag_name]
2 从远程删除
$ git push origin :refs/tags/[tag_name]

23 使用github
可以通过”Fork“克隆一个库到自己的账号下,修改自己的库后,在github发起一个pull requset

24 关联远程库中的相关问题
本地仓库与远程仓库关联
$ git remote add origin [项目地址]
如果在git remote add 时出错:
fatal: remote origin already exists.
说明本地库已经关联了一个叫origin的远程库,此时可以先用
$ git remote -v

删除已有 的远程库
$ git remote rm origin{远程库名字}
再次关联

25 初次推送到远程库可能出现的错误
failed to push some refs to git
主要是readme.md文件不在本地文件夹
可以通过以下的命令合并,pull = fetch + merge
$ git pull --rebase origin master


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值