Git学习

Git学习

要确保/etc/hosts里配置了能访问你git仓库的ip

/etc/hosts
172.16.40.14  git.ihanchen.com
linux下载安装git
1、下载官网:
https://git-scm.com/download/linux
2、安装git依赖包
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
3、删除已有的git
yum remove git
4、下载git源码
  切换到你的包文件存放目录下
    cd /usr/src
  下载git安装包
    wget https://www.kernel.org/pub/software/scm/git/git-2.8.3.tar.gz --no-check-certificate
  解压git安装包
    tar -zxvf git-2.8.3.tar.gz
    cd git-2.8.3
  配置git安装路径
    ./configure prefix=/usr/local/git/
  编译并且安装
    make && make install
5、将git指令添加到bash中
  vi /etc/profile
  在最后一行加入
  export PATH=$PATH:/usr/local/git/bin
  让该配置文件立即生效
  source /etc/profile
1、工作区操作失误,撤销回到最新的状态
1、没有提交到暂存区
git checkout -- 你要恢复的文件

2、已经提交到暂存区【git add 文件】
① git reset HEAD 文件名  (git reset --hard HEAD)
② git checkout -- 你要恢复的文件  (git checkout HEAD)

3
1-1、回滚历史版本
1、先使用git log查看历史版本
git log

2、在使用git reset --hard命令回滚
git reset --hard 要回滚id
2、与远程仓库关联
1、在你的用户主目录下是否有.shh目录,并且这个目录下有没有id_rsa和id_rsa.pub,没有即操作
ssh-keygen -t rsa -C "youremail@example.com"
将生成的id_rsa.pub内的内容复制到gitlab或者github上
2-1、远程和本地都有仓库,将项目推送到远程上
-- 关联一个远程库时必须给远程库指定一个名字,origin是默认习惯命名;
① git remote add origin 你的远程仓库地址.git
-- git push命令实际就是把当前分支推送到远程
② git push -u origin master
2-2、远程克隆
git clone 你的远程仓库地址.git
3、分支
你处于你所在的分支时创建的文件【没有使用git add|git commmit】的情况下,你切换到master分支,这个文件
还是一直存在的(因为你创建的这个文件是在工作区中,而切换仓库时git只会更新跟仓库有关的文件)
3-1、分支的创建与删除
1、我们创建dev分支,然后切换到dev分支
git checkout -b dev  ==git branch dev【创建dev分支】  + ② git checkout dev【切换到dev分支】  == git switch -c dev

2、删除dev分支
git branch -d dev
3-2、查看分支
git branch -a
3-3、合并分支
-- 将dev分支合并到当前分支
git merge dev
3-4、切换分支
1、git switch master
2、git checkout dev
3、如果在当前分支的工作区做了修改,你说无法切换其他分支的【这个命令的作用就是为了解决git不提交代码不能切换分支的问题】
  ① git stash  保存当前工作状态
  ② 当你在别的分支完成任务,切回当前分支
  ③ git stash pop 恢复工作状态
3-5、删除分支
1、git删除本地分支
git branch -D 分支名

2、git删除远程分支
git push origin --delete 远程分支名
3-6、修改分支名
git branch -m 分支名 新的分支名
4、忽略文件 - .gitignore【创建与.get同级】
4-1、编写规则
bin/: 忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
/bin: 忽略根目录下的bin文件
/*.c: 忽略 cat.c,不忽略 build/cat.c
debug/*.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
**/foo: 忽略/foo, a/foo, a/b/foo等
a/**/b: 忽略a/b, a/x/b, a/x/y/b等
!/bin/run.sh: 不忽略 bin 目录下的 run.sh 文件
*.log: 忽略所有 .log 文件
config.php: 忽略当前路径的 config.php 文件
4-2、.gitignore规则不生效
# .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached .
git add .
git commit -m 'wmm'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值