赞
踩
yum -y install git
安装路径默认在/usr/libexec
git version
git config --global user.name "XXXX"
git config --global user.email "XXXXXXXXXX@qq.com"
git config --global user.password tianshan
git config --list (查看是否配置成功)
- cd /home/www #进入工作目录
- mkdir blog #创建项目
- cd blog #进入项目
- git init #初始化项目
- git status #查看git状态
1.生成公钥:
ssh-keygen -t rsa -C "邮箱@qq.com"
查看公钥:
cat /root/.ssh/id_rsa.pub
将公钥复制到码云
码云这个添加公钥的页面在
设置/安全设置/ssh公钥中
git config --global user.password tianshan
这里演示修改本地仓库的用户名和邮箱:
git config --replace-all user.name "name"
git config --replace-all user.email "123@qq.com"
vim .gitignore
- *.txt //忽略所有以.txt结尾的文件不跟踪
- !a.txt //可以跟踪a.txt
- /vendor //不跟踪vendor文件夹
- /vendor/*.php //不跟踪vendor 下的所有php文件
背景: git clone 项目时候,在本地运行需要修改配置文件,如果直接这样做:
git rm --cached config.json
config.json 文件添加到 .gitignore
git add
git commit
git push
远程仓库的配置文件会被删除,导致项目运行报错
正确做法:
首先,将 config.json 文件添加到 .gitignore 文件中,确保它不会被 Git 跟踪。
config.json 文件添加到 .gitignore
git update-index --assume-unchanged config.json
git add .
git commit -m "Ignore and stop tracking config.json"
git push
本地的config.json会被忽略,远程仓库的配置文件不会变。其他人再次clone 需要再次配置,这个配置只能在当前本地环境生效
========================================================================
git reset --hard HEAD^
注意本地代码会被回退到上次修改前,如果本地已有修改注意备份。
之后,使用 –force 或 -f 参数强制push
git push origin master --force
再看git log就没有上次的提交了
========================================================================
文件在没有没有add之前 被修改,可以git checkout 恢复
git checkout file.txt
(本地文件)
========================================================================
rm -rf 1.txt 文件被误删后
git status 会有 deleted 提示
找回被误删文件 :
git checkout 1.txt
add 是添加跟踪文件
git add 之后,后悔了,不想跟踪1.txt
git rm --cached 1.txt //远程代码会被删除
=========================================================================
git add 后,想把文件恢复之前的样子
git restore remote.txt
========================================================================
git reset --hard commit_id
文件恢复到pull状态 文件内容会丢失 慎用
=======================================================================
git update-index --assume-unchanged /path/file #设置忽略跟踪
git update-index --no-assume-unchanged /path/to/file #恢复跟踪
git update-index --skip-worktree /path/file
assume-unchanged 与 skip-worktree 的区别如下:
assume-unchanged:这个会关闭文件与远程仓库的跟踪,认为这个文件远程仓库是不会修改,所以每次pull都是本地的文件
skip-worktree:这个不会关闭文件与远程仓库的跟踪,只是告诉Git不要跟踪对本地文件/文件夹的更改。如果远端仓库内容有变化,pull时会拉取最新的变化,并提示冲突,但因为没有跟踪本地更改,所以需要no-skip-worktree再合并最新的变化。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。