一、git
1. git安装
sudo apt-get/yum install git //Unbuntu使用apt-get,CentOS使用yum
2. 创建用户
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
3. 创建仓库
cd /home
mkdir learngit
cd learngit //首先创建并切换到一个空目录,如/home/learngit
git init //初始化
4. 增加文件并提交,如readme.txt
git add readme.txt
git commit -m "..." //引号内输入改动内容,
5. 修改文件
首先修改readme.txt的内容
git status //查看状态, 请多用!!!
git diff readme.txt //查看文件内容的变动, 更放心
git add readme.txt
git status //查看状态, 可以看到待提交的文件
git commit
git status //提交后,再次查看仓库状态
6. 版本回退
git log //或git log --pretty=oneline
git reset --hard HEAD^ //回退到上一个版本,上上个版本改为HEAD^^,向前1000个版本改为HEAD-1000
git reset --hard 版本号 //回退版本后,若要穿越回未来,命令窗口没有关闭的情况下,上上滚找到版本号,执行此命令
//版本号没必要写全,前几位就可以了,Git会自动找。
cat readme.txt //查看穿越后的文件
若仅回退某一个文件,请看8
7. 版本回退后穿梭回未来
回退到某个版本后就后悔了,想恢复到新版本,找不到新版本的commit id怎么办?
当你用$ git reset --hard HEAD^回退到某个版本时,再想恢复到回退前的版本,就必须找到回退前版本的commit id。Git提供了一个命令git reflog用来记录你的每一次命令:
$ git reflog
ea34578 HEAD@{0}: reset: moving to HEAD^
3628164 HEAD@{1}: commit: append xxx
ea34578 HEAD@{2}: commit: add xxx
cb926e7 HEAD@{3}: commit (initial): xxx
8.仅回退单个文件, 以readme.txt为例
git log readme.txt
git reset 版本号 readme.txt
git commit -m "..."
git checkout readme.txt //更新到工作目录
9. git add 的各种区别:
git add -A // 添加所有改动
git add * // 添加新建文件和修改,但是不包括删除
git add . // 添加新建文件和修改,但是不包括删除
git add -u // 添加修改和删除,但是不包括新建文件
10. 在 commit前撤销 add:
git reset <file> // 撤销提交单独文件
git reset // unstage all due changes
11. add前撤销对文件的修改:
git checkout -- readme.txt // 注意, add添加后(同commit提交后)就无法通过这种方式撤销修改
二. 远程仓库
1. 创建SSH KEY
ssh-keygen -t rsa -C "youremail@example.com"
ls -a 找到主目录下的.ssh目录
cd .ssh
vi id_rsa.pub
然后, 把id_rsa.pub中的内容复制到github中
2. 创建github仓库, 如learngit
3. git和github关联
使用命令 git remote add origin git@server-name:path/repo-name.git
或 git remote add origin https://github.com/path/repo-name.git;
关联的远程仓库为github时, server-name为github.com
4. 推送到远程仓库
git push -u origin master(首次推送);
git push origin master(非首次推送最新修改);
5. 从远称仓库克隆
git clone git@server-name:path/repo-name.git
或 git remote add origin https://server-name/path/repo-name.git
三、手动搭建远程服务器
1. 创建git远程服务器
git init --bare repo-name.git
2. 克隆远程仓库到本地
git clone ssh://user_name@host:port/home/path/repo-name.git
3. 创建新分支并切换到新分支
git checkout -b 新分支名
4. 分支内文件改动后,提交改动
git add <file>
git commit -m "..."
5. 将本地分支push到远程分支
git push origin 本地分支名:远程分支名
6. 从远程仓库更新本地仓库
git pull
7. 将远程git仓库里的指定分支拉取到本地(本地不存在的分支)
git checkout -b 本地分支名 origin/远程分支名
8. git状态查看
git status