1.git clone 把远程库克隆到本地文件夹
git clone -b dev https://gitee.com/XXX/EmpManage //直接克隆远程dev分支到本地dev分支
//相当于如下操作
git clone https://gitee.com/XXX/XXXManage //克隆远程仓库主分支
cd XXXManage
git status //查看当前状态
git branch -a //查看所有分支
//git branch -d dev //删除分区命令
git checkout -b dev //当前PC本地仓库创建一个新分区
git pull origin dev //拉取远程origin/dev分支到当前路径(git branch dev remotes/origin/dev)
git checkout dev //切换到dev分支
2.编辑本地仓库文件并提交到本地信息库(git add ./git commit)
nano README.md //读取README.md文件中内容
...
git add . //git add --all //git add AAA.hpp bbb.cpp
git commit -m "x修改信息" //提交当前状态到本地分支并附上修改信息
3.将本地库提交到远程Git服务器
//首次提交需要确认当前已设定用户名及邮箱 ,命令git config user.name 和git config user.email
git remote -v //如果有必要,需查看当前项目所有远程仓库源,确保远程仓库源已设定,例如orign已有值。如果没有可以输入命令git remote add origin git@gitee.com:XXX/123.git ,其中git为GIT管理平台https/ssh协议路径
git push origin dev //推送当前最新提交状态到origin远程仓库的dev分支
//git log --oneline --graph //查看分支日志,graph表示图形化显示
4.本地回退某版本或某提交状态
//刚提交stage,欲返回提交之前
git add a.txt
git commit –amend –no-edit
//git返回之前某版本
git reset --hard //查看当前版本标志,以及备注内容
git reset --hard HEAD^ //^表示回退前一个版本,^^表示前两个版本,~100表示前100版本
git reset --hard 822ad73 //表示回退至822ad73标识符版本,通过git log查看
//返回之后的某个版本
git reflog //查看所有操作日志及标识
git reset --hard HEAD@{3} //返回看3号版本
//回退到某版本,或使某个文件(某文件变化回退前版本,但是其他不变)
git log --oneline
git checkout c676a1a
git checkout c676a1a --test.txt
5.创建及合并分支
git branch dev //创建分支
git branch -d dev //删除分区
git checkout -b dev //创建一个新分区
git commit -am "change3 " //直接提交,不用add.但仅对已添加的内容提交
//合并项目
git merge --no-ff -m "keep merge info" dev //--no-ff 表示no fast forward
//合并项目
git checkout master
git rebase dev //将dev合并到主分支
git add 1.py
git rebase –continue
git log –oneline –graph
6.暂存当前分支开发状态,之后再恢复
git checkout dev
git stash -s /////第一步,存储当前dev开发状态
git checkout -b boss //创建boss分支
… //在boss分支 增添改查等操作
git checkout master //切换至master分支
git merge –no-ff -m "merged boss job" boss //将刚才boss分支合并到主分支
git checkout dev //切换到dev分支最新节点
git stash pop /////第二部,返回修改
7. 删除当前修改并恢复到最新HEAD节点的方法:
- 方法一
git stash //将当前修改存在临时缓存中
git stash drop //丢弃暂存修改
- 方法二
//有一定风险,建议谨慎使用。rm -rf删除当前目录所有文件,但不删除隐藏目录或文件.git等
rm -rf *
git reset --hard HEAD
8. 创建分支并与远端分支保持同步
$ git fetch --all //获取远端所有分支,这样本地能够确认是否能够操作
* [新分支] dev -> origin/dev
$ git checkout -b dev origin/dev //创建新分支dev,并将远端仓库的dev分支拉取下来
分支 dev 设置为跟踪来自 origin 的远程分支 dev。
切换到一个新分支 'dev'
$ git pull origin dev //拉去dev分支中具体文件
9. 忽略文件和文件夹
项目目录下创建.gitignore文件。一般来说,开发者会单独建立一个名为build的文件夹,用来存放所有编译出的二进制文件。我们只需在.gitignore文件中加入build/,忽略掉整个文件夹即可。
在 .gitignore 文件中,每一行的忽略规则的语法如下:
- 空格不匹配任意文件,可作为分隔符,可用反斜杠转义
- #开头的文件标识注释,可以使用反斜杠进行转义
- ! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义
- / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
- / 开始的模式匹配项目跟目录
- 如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录
- ** 匹配多级目录,可在开始,中间,结束
- ? 通用匹配单个字符
- [] 通用匹配单个字符列表
如果之前已经有二进制文件存在在git中,在更新完.gitignore文件后,我们想要将这些二进制文件从git中删除的话,可以使用如下方法:
git rm --cached <file>