Git操作
- git init : 初始化仓库
- git log: 查看提交日子
git别名配置
1 2 3 4 5 6 7 8 9
| git config --global alias.co checkout git config --global alias.br branch git config --global alias.ci commit git config --global alias.st status git config --global alias.unstage 'reset HEAD --' git unstage fileA git reset HEAD fileA git config --global alias.last 'log -1 HEAD' git last
|
git clone远程分支
git clone 地址
//如果发现只有一个.git目录,需要checkout了,查看branch信息
git branch -r
//origin/andrio
//origin/iso
//origin/pc
//如果此时我们需要时andriod分支的代码,那么就要进行checkout了
git checkout origin/andriod
git 拉取远程分支到本地
git checkout origin/remoteName -b localName
git 提交远程分支
git push origin 远程分支的名字
git 新建分支
git branch test
git 切换分支
git 新建并切换到分支
git checkout -b test
git 更新某个分支
git fetch [主机名] [分支名]
git fetch origin master
git 删除某个分支
git branch -d [分支名]
git branch -d dev
git 合并分支
git merge [分支名]: git merge andrio
git 提交
git add -A || git add -all
git commit -a -m 'first commit'
git不上传空文件夹设置
1 2
| //方法1 find . -type d -empty -exec touch {}/.gitignore \;
|
git push
1 2
| git push origin <branch> //提交远程分支 git push origin :<branch> //删除远程分支
|
git branch
1 2 3 4 5 6
| git branch // 查看所有分支 git branch -r// 查看远程分支 git branch -d <branch> //删除本地分支 git checkout -b <branch> origin/<branch> git branch -m <newbranch name> //修改当前分支名为newbranch name git branch -m <old branch> <new branch> //修改old-branch 为 new-branch
|
git pull
1 2
| git pull git pull origin <branch> //更新分支代码
|
git checkout
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| git checkout master //切换到master分支 git checkout <file> //将暂存区的文件覆盖工作区的文件 git checkout <commit> <file> //将工作目录中的替换成commit中的file文件,并加入到缓存区 git checkout <commit> git checkout -p <branch> //对比当前分支和branch分支的区别,并选择是否将这些差异应用到当前分支上 git checkout -b <new branch name> <commit id> //根据特定的commit创建分支并合并 git checkout -b <branch> origin/<branch> //拉取全程分支到本地 //等同于下面两个命令 git checkout <commit id> git checkout -b <new branch name> git checkout -- . //放弃本地修改 git clean -df //删除新增文件
|
git merge
1 2 3 4 5
| //将master分支合并到feature分支最简单的办法就是用下面这些命令: git checkout feature git merge master //或者,你也可以把它们压缩在一行里。 git merge master feature
|
git rebase
1 2 3 4 5
| git checkout new-feature git rebase -i master git checkout master git merge new-feature
|
git revert
撤销
git reset
重做
1
| git reset --hard <commit id> //reset到指定的commit
|
git log
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| git log andrio //查看某个分支的log git log <branch> -- //查看分支log git log -- <directory> //查看directory文件夹的log git log master..test //查看test分支的提交记录但不包含master分支记录 git log test..master //查看master分支记录但不包含test分支记录 git log test...master //查看test和master分支记录 git log test --not master //屏蔽master分支log git log <path> // 查看某些文件或目录的历史提交 git log -p //查看每次内容提交的差异 git log -p [filename] //查看文件的log git log -p -2 //查看最近两次提交的内容差异 git log -stat -1 //查看最近一次提交的文件增删数量 git log --author marong02 // 查看提价者的日志 git log --grep=test //通过提交说明信息包含test字段过滤提交日志 git log --pretty=oneline // 将提交日志压缩到一行
|
git stash
1 2 3 4
| git stash git stash list git stash apply 重新应用刚刚的存储 git stash apply stash@{2} 重新应用更早的存储
|
git clean
从工作目录中移除未跟踪的文件
1
| git clean -df //删除未跟踪的文件,但不删除.gitignore中忽略的文件
|
git diff -w [filename]: 查看文件的合并情况
如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:
git stash
git pull
git stash pop
如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
git reset –hard
git pull
#Setting your branch to exactly match the remote branch can be done in two steps:
git fetch origin
git reset –hard origin/master
git放弃某个文件的修改
git checkout
合并多个commmit为一个,不好看
git rebase -i 允许合并除了root commit的多条提交日志
git rebase -i –root 允许合并包含root commit的多条提交日志
在提交PR之前,用rebase合并提交,PR提交后,任何来自其他开发者的更改要有merge,
如果用base会造成Git和其他开发者难以找到这个分支接下来的任何提交
1 2 3 4 5 6 7 8 9 10 11 12
| //方案一 git rebase -i <commit id> //要合并的版本之前的版本号,输入的版本不参与合并 //在交互式窗口中,将第二行开始的pick,手动改成s或f,改完后wq保存退出 //如果出现冲突,需要解决,解决完成后,git add . => git rebase --continue //成功后,如果想放弃本次修改,可以git rebase --abort git push --force origin master //提交到远程分支 //方案二 git rebase -i @~4 修改下面的三个中开头的pick为f,然后保存,合并多个commit为一个 git push origin --delete feature/FECHI-4927 //删除分支 git push origin feature/FECHI-4927 //重新提交分支
|
git提PR步骤
合并好commit之后
进入branch –> create pull request –>
输入reviewers,在控制栏里执行
1
| document.querySelector('.select2-offscreen').value="duzhaoyang|!|zhengwenbing|!|zhangcongjie|!|chenwenbin03|!|huxiaoyue|!|wangzengdi|!|fuhongjuan|!|chengang07|!|wangyue08|!|chenzeqing|!|zhangchunxiao|!|chenshenqian|!|shiwenzhe"
|
–> Create
git 合并master
git merge origin/master //merge 不需要重新提PR git pull –rebase origin master //rebase 需要重新提 PR
git cat-file
git stash
git reflog 能召回git reset的操作,,如果垃圾回收了git reflog,就永远找不回了
多人在一个分支开发
git grep “” 搜素内容
git commit –amend –date=now 修改日期