下载 git
windows:https://git-scm.com/download/win
Linux :yum install -y git
git 本地版本库命令
1、配置参数
git config --global user.name '张琦' (配置参数)
git config --global user.email 'xx'
git config --unset --global user.name (删除参数)
git config --list (查看参数列表)
cat ~/.gitconfig (查看配置文件)
2、创建版本库
git init (将目录变为版本库,将会产生一个.git目录)
3、add/commit
git status (查看版本库的状态)
git add 1.php (将修改提交到 暂存区) or git add . <将多个修改提交>
git commit (将暂存区的提交到版本库中) -m '注释'
4、查看某文件修改前后的差别
git diff 1.php
5、版本回退
git log |or git log --pretty=oneline |or git log --oneline (查看日志)
git reset --hard HEAD^ |or git reset --hard HEAD^^ |or git reset --hard HEAD~20 (通过 HEAD 版本回退)
git reset --hard 版本号 (通过版本号回退,这里的版本号是通过 git log --oneline 看到的短版本号)
git show 版本号 (查看某个版本具体更改记录)
6、版本前进
git reflog (查看回退之前的 log 日志)再通过 版本回退的写法,切换版本
7、撤销修改
1> 修改还没有放到 <暂存区> git checkout -- 要撤销更改的文件名
2> 修改已经放到了 <暂存区> git reset HEAD demo.php 然后 git checkout -- demo.php(将修改撤销到本地)
8、删除文件
1> 文件删除错误 git checkout -- demo.php (将文件恢复过来)
2> 确实要删除 git rm demo.php / git commit -m '删除demo.php文件'
9、分支
1> 查看分支 git branch
git branch -a 查看所有分支,包含远程分支
git remote update origin -p 如果 git branch -a 查看到的远程分支其实不存在,通过该命令更新
2> 创建分支 git branch dev
3> 切换分支 git checkout dev | or 创建并切换分支 git checkout -b dev
4> 合并分支 git merge dev
5> 删除分支 git branch -d dev
区别
git branch -d 会在删除前检查merge状态(其与上游分支或者与head)
git branch -D 是git branch --delete --force的简写,它会直接删除
6> 删除远程分支 git push --delete origin dev
7>本地分支和远程分支进行追踪绑定 git push --set-upstream origin 分支名
git远程版本库命令
1、创建一个项目,得到地址 :https://gitee.com/itzhangqi/git_pro2.git
2、远程库
1> 添加远程库 git remote add 远程库名 项目地址
2> 查看远程库 git remote
3> 查看远程库地址 git remote -v
4> 删除远程库 git remote remove 远程库名
5> 修改远程库名 git remote rename 旧远程库名 新远程库名
3、从远程拉取项目
git pull --rebase 远程库名 master
4、将代码推送到远程
git push 远程库名 master
5、克隆一份项目代码
git clone 项目地址
6、git push --set-upstream origin dev
将本地的分支映射到远程的分支
git 已经push到了远程分支,但是最近一次的提交属于其它分支的代码,所以需要撤销掉:
1、在gitlab上找到要恢复的版本号: git log
2、在客户端执行如下命令(执行前,先将本地代码切换到对应分支):
git reset --hard hash号
3、强制push到对应的远程分支(如提交到develop分支)
git push -f -u origin develop
git config --add core.filemode false (filemode的变化,文件chmod后其文件某些位是改变了的,如果严格的比较原文件和chmod后的文件,两者是有区别的,但是源代码通常只关心文本内容,因此chmod产生的变化应该忽略,所以设置一下)
ssh-keygen -t rsa -C "youremail"
然后会生成 .ssh文件夹。
打开 .ssh文件下的id_rsa.pub 全部复制,进入git ->setting ->ssh key 新增 ssh key即可。
【end】