1.git 初始化
1.git --version 查看git的当前版本
2.在使用git 之前 需要做git的初始化操作
这些操作会改变 .gitconfig文件,或者系统文件 /etc/gitconfig文件
一.gitlab 仓库常见操作
1.设定本机用户名,绑定邮箱,让远程服务器知道机器的身份
git config --global user.name "limengqin"
git config --global user.email "XXXXX@XX.com"
git config --list 查看当前的配置
2.如果你没有最新的代码,希望从头开始,下面展示在你希望pull过来的文件夹下Create a new repository
git clone git@XXX.git //这里是项目的地址(可从项目主页复制),将远程服务器的内容完全复制过来
cd BGBInspector_V01 //clone 之后进入该项目的文件夹
touch README.md //新建readme文件
git add README.md //将新的文件添加到git的暂存区
git commit-m ‘Its note:add a readme file’ // 将暂存区的文件提交到某一个版本保存下来,并加上注释
git push -u origin master //将本地的更改提交到远程服务器
3.如果你已经有一个新版代码,希望直接把本地的代码替换到远程服务器,下面是Existing folder or git repository
cd existing_folder //进入代码存在的文件夹,或者直接在该文件夹打开git bash
git init //初始化
git remote add origin git@XXX.git //添加远程项目地址(可从项目主页复制)
git add . //添加该文件夹中所有的文件到git的暂存区
git commit -m ‘note’//提交所有代码到本机的版本库
git push -u origin master //将本地的更改提交到远程服务器
4.将旧的项目覆盖到新的项目
1.首先拉取所有的分支和tag 到本地
2.然后执行下面命令 推送到远程
git remote rename origin old-origin
git remote add origin http://170.100.104.99/SuperApp/UMMP/javascript/ummp-front.git
git push -u origin --all
git push -u origin --tags
5.本地项目与远程服务器项目之间的交互
//几个常用的git 命令
git init //初始化
git add main.cpp //将某一个文件添加到暂存区
git add . //将文件夹下的所有的文件添加到暂存区
git commit -m ‘note’ //将暂存区中的文件保存成为某一个版本
git log //查看所有的版本日志
git status //查看现在暂存区的状况
git diff //查看现在文件与上一个提交-commit版本的区别
git reset --hard HEAD^ //回到上一个版本
git reset --hard XXXXX //XXX为版本编号,回到某一个版本
git pull origin master //从主分支pull到本地
git push -u origin master //从本地push到主分支
三、关于ssh key的设置(免除密码 )
1.设置Git的 user name 和email(如果是第一次的话)
git config --global user.name "wangzhen"
git config --global user.email "1228857713@qq.com"
2.生成密匙
这里输入你的邮箱,生成一个与邮箱相对应的key
ssh-keygen -t rsa -C "XXXXX@XX.com"
连续三个回车,如果不需要密码的话。
最后得到两个文件:id_rsa和id_rsa.pub
SSH 公钥默认储存在账户的主目录下的 ~/.ssh 目录
3.添加密匙到ssh-agent(如果 是使用 gitlab 可以直接 复制到 个人资料的密码里面)
确保 ssh-agent 是可用的。ssh-agent是一种控制用来保存公钥身份验证所使用的私钥的程序,其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。
# start the ssh-agent in the background
eval "$(ssh-agent -s)"
Agent pid 59566
添加生成的 SSH key 到 ssh-agent。
$ ssh-add ~/.ssh/id_rsa
分支操作
- 分支的常用命令
git branch -a 查看所有分支(本地分支和远程分支)
git branch -r 查看所有远程分支
git branch 查看所有本地分支
git branch -d test 删除分支
git branch -D test 强制删除分支
删除远程分支
git push origin --delete <BranchName>
- 拉取分支提交代码
1.拉取代码
git clone http://170.100.104.99/SuperApp/CompanyPhoneBank/javascript/CompanyPhoneBank_front.git
2.查看远程分支
git branch -r
3.拉取远程分支并且创建本地分支
拉取测试分支
git checkout -b test origin/test
拉取开发分支
git checkout -b dev origin/dev
覆盖操作
将test 分支上的代码全部覆盖到master分支,master 分支上的代码不再存在
第一种方法
git push origin test:master -f //将test分支强制(-f)推送到主分支master
第二种方法
git checkout -b test origin/test
git checkout master //将当前分支切换到主分支
git reset -hard test //将主分支重置为test分支
git push origin master -force //将重置后的master分支强制推送到远程仓库
如果推送的时候报错说不能推送,那么可能是现在的master 分支手保护,需要去gitlab 上解除分支保护才可以推送
常用命令操作
1.git log 查看最近的提交操作
2.git log --pretty=oneline 以并行的格式显示日志输出
3.在Git中,用HEAD表示当前版本,上一个版本就是HEAD^
git reset --hard HEAD^ 回退到上一个版本
git reset --hard 1094a 回退到制定版本
git reflog 查看命令历史(可以用来看未来版本)
4.git remote 查看远程仓库信息
git remote -v 显示更详细的信息
常用概念解释
1.工作区与暂时区
》工作区就是你电脑里能够看到的目录
》工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库,其中最重要的就是称为stage(或者叫 index)的暂存区
》第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
》第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
2.当删除一个文件后 可以 git status 查看命令状态 看是删除了哪个文件
git checkout -- test.txt 可以回滚到之前的文件
设置与取消代理
git config --global http.proxy 代理地址
git config --global https.proxy 代理地址
git config --global --unset http.proxy
git config --global --unset https.proxy
常见问题
IDEA 处于 git merging状态
解决方法 git merge --abort
查看远程分支
git remote show origin
拉取所有分支 和标签
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all
cherry pick
cherry pick 可以将某一次提交当单独提取出来合并到一
个分支,其实就是将这个提交作用于这个两个分支的
共同父提交然后单独切出一个分支。如果cherry pick 的提交被其他分支单独依赖,那么该cherry pick 就会失败