Git工具
0,安装 Git + (git-bash , TortoiseGit)
1,理解Git的四个存储区和五种状态的好博文
https://geektutu.com/post/git-four-areas-five-states.html
2,Git几个常用的命令
git clone [地址] //下载 master 代码
git branch -a //查看所有分支
git branch //查看本地分支
git checkout -b xxx //创建本地分支
git checkout -b feature-branch origin/feature-branch //同步远端分支到本地
git checkout -b use_defalut_pulsar_topic && git push -u origin use_defalut_pulsar_topic
//创建本地并推送到远端
git pull //相当于是从远程获取最新版本并merge到本地
注意win7提交代码有两个步骤:先commit,再push
git checkout -- ./ //撤销当前目录下的修改,相当于svn的(先删除当前目录下所有文件,然后svn update)
git remote -v //查看代码的远程路径
git log 查看提交日志
git status 查看文件修改状态
git stash 缓存修改
git stash pop 还原缓存修改
git commit 提交(查看本地交远端的修改)
git diff 比较文件差异
git merge 合并分支
git rebase 改变基准
git pull --rebase origin master //如果本地分支 bihand 远程分支,执行这个命令,再 执行 git checkout -- ./
git reset --hard [commit id] //删除本地提交,并切换到远端 id 的位置
3,需求,更改了分支,又要切换到更改之前的基线,而又想保留当前的更改:
(1)git stash save "save message" : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
(2)git stash list :查看stash了哪些存储
(3)git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
(4)git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p
(5)git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}
(6)git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
(7)git stash drop stash@{$num} :丢弃stash@{$num}存储,从列表中删除这个存储
(8)git stash clear :
删除所有缓存的stash
4,创建本地分支并同步到远端
git checkout -b new_branch_name
git push -u origin new_branch_name
5,提交代码流程:
1.检测本地修改过的文件(git status)
2.git add -u [<路径>]: 把<路径>中所有跟踪(tracked)文件中被修改过或已删除文件的信息添加到索引库。它不会处理未跟踪(untracked)的文件。省略<路径>表示:即当前目录。
3.git add -a [<路径>]: 表示把<路径>中所有跟踪(tracked)文件中被修改过或已删除文件和所有未跟踪(untracked)的文件信息添加到索引库。省略<路径>表示:即当前目录。
4.git add -i [<路径>]: 命令查看<路径>中被所有修改过或已删除文件但没有提交的文件。
5.将修改从暂存区提交到本地版本库(git commit -m “modify”)
6.从远程获取最新版本并merge到本地(git pull)
7.将本地版本库的分支推送到远程服务器上对应的分支(git push)
6,修改本地文件后,git pull 冲突Your local changes to the following files would be overwritten by merge解决方法:
1,git stash 保存本地修改
2,git pull 拉去远端最新文件
3,git stash pop 恢复本地修改 // 查看冲突
4,git add -u
5,git status
6,git pull //没冲突即可推送
7,git commit -m "comment"
8,git push 推送到远端
7,提交冲突处理(手动)
1,
git fetch origin git checkout -b "jsf_connstat" "origin/jsf_connstat"
2,
git fetch origin git checkout "develop" git merge --no-ff "jsf_connstat"
3,
git push origin "develop"