2018年11月22日 Git
一.git基本命令
1.三个区的概念(工作区,暂存区,版本库)
工作区(Working directory):将一个文件夹通过git init 设置成一个git可以管理的文件夹时,这个文件夹里的内容就是工作区。
版本库(repository)
当工作区生成后(git init),在Linux下用 ls -a 查看可以发现除了
. / ../ 还有个 .git 这个 .git 就是版本库。
注意:工作区是除了版本库之外的其他内容。
暂存区(stage / index)
暂存区,叫stage 或者 index ,是用来暂时存放工作区中修改的内容;可以理解为一个中转站
git init 在当前目录新建一个Git代码库 将文件夹变为git仓库
git config --global user.name chengbenchao 设置用户名
git config --global user.email 395775347@qq.com 密码
git add xx 添加指定文件到暂存区
git add [dir] # 添加指定目录到暂存区,包括子目录
git log 显示当前分支的版本历史
git add . 加当前目录的所有文件到暂存区
git commit -m"message" 提交暂存区到仓库区
git status 显示有变更的文件
git diff 显示暂存区和工作区的代码差异
git push 提交
2.其他常用命令
版本回退
git log
git log --pretty=oneline
git reflog
git reset --hard XXXXX
撤销修改和删除
git checkout xx
git rm xx
git commit -m"xx" //从版本库中删除后,要commit
本地仓库和远程仓库的连接
git remote add origin xxx
git push -u origin master
git remote -v
git remote remove origin //取消远程关联仓库
克隆远程仓库到本地 (中要,不能忘)
git clone xxx
二.git简单配置
配置全局信息 在命令行中输入:
git config --global user.name chengbenchao
git config --global user.email 395775347@qq.com
显示出全局配置的相关信息:
git config --list --global
增加用户名:
git config --global --add user.name jiangwei
删除用户名jiangwei:
git config --global --unset user.name jiangwei
修改用户为chengchao:
git config --global user.name chengchao
三.git版本回退
1.git log打印日志信息,可以看到之前提交的版本;
2.git log --pretty=oneline只打印每一次提交的版本号
3.时光穿梭机(回到之前的版本)git reset --hard 版本号
4.回到当前版本的前一个版本
git reset --hard XXXXX(版本号)
5.要重返未来,git reflog 看命令历史,以便确定要回到未来的哪个版本
四.git撤销修改和删除
1.撤销修改 git checkout -- <fileName>
2.删除文件 rm <File>
之后如果确定要删除文件,命令行中输入
git rm test.txt;
git commit -m "remove test.txt"
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本
git checkout -- test.txt
五.git本地仓库和远程仓库的连接
###1.登录git 新建一个仓库New repository
###2.仓库的名称就叫learnGit执行上图的1,2步;
###3.在本地的learnGit文件夹下输入
git remote add origin https://github.com/chengbenchao/learnGit.git
git push -u origin master
//之后输入用户名密码
###4.在learnGit文件夹下新建add.txt文件,在命令行中输入
git add add.txt
git commit -m"add"
git push origin master
###5.查看远程关联仓库
git remote -v
###6.取消远程关联仓库
git remote remove orig
六.git克隆远程仓库到本地
###1.新建一个仓库
###2.在本地E:gitTest的命令行中输入
//git clone后面跟远程仓库的地址
git clone https://github.com/chengbenchao/gitSkill
七.git配置ssh(本地免密)
1.在命令中输出cd ~/ssh出现No such file or directory,表示不存在ssh文件 cd ~/.ssh
2.在命令行中输入,生产ssh
ssh-keygen -t rsa -C 395775347@qq.com
3.生成的文件,将Admind文件夹下的.ssh中的内容粘贴到码云的ssh设置中
八.分支管理
1.创建分支
git branch <branch-name>
2.切换分支
git checkout <branch-name>
3.创建+切换分支
git checkout -b <branch-name>
4.查看分支
git branch
5.创建分支和远程分支连接
git checkout -b <branch-name> origin/<branch-name>
6.合并分支
git merge <branch-name>
git merge --no-ff -m"xx" <branch-name>
7.查看分支图
git log --graph --pretty=oneline --abbrev-commit
8.将修改内容添加到工作区的存储区
git stash
//查看存储区的内容
git stash list
//恢复存储区的内容
git stash pop
9.删除分支
git branch -d <branch name>
git branch -D <branch name>
10.推送分支
git push orgin <branch name>