Git 用了接近一年了,总结一下
IT TianSir
git clone http://... 将项目克隆到本地(该项目会放在当前目录下)
git branch 查看本地分支
git branch -r 查看远程分支
git branch -a 查看所有分支
git status 查看当前分支的工作状态,比较暂存区和head文件的差异
git checkout branchname 切换到branchname分支
git checkout -t -b production origin/production 从远程分支切一个分支出来,并切换到该分支,此时该分支与对应远程分支是一致的
git checkout -b fixbug/tianjian-production 从当前分支的基础上切一个分支出来,此时该分支与之前原分支是一致的
git branch -d | -D branchname 删除本地分支branchname
git branch -d | -D -r branchname 删除远程分支branchname
git stash 将当前的更改暂存起来(Boss突然让你去正式环境修改紧急bug,此时暂存很有用)
git stash pop 将暂存的内容放出来
git add . 将当前的修改添加到暂存区
git commit -m '' 将更改提交到暂存区
git push origin branchname 将代码推到远程branchname分支
git checkoout . 撤销当前的更改
git reset --hard commit_id 撤销提交
git pull 从远程将代码更新到本地分支
git checkout B 切换到B分支
git merge A 将本地A分支合到当前分支
此时A分支的代码就已经合到B分支了,完成了历史使命,可以放心的将其删除git branch -d A
git status 取代码前看下是否有更改未提交
git pull 更新代码
敲代码
git status 查看是否是自己修改过的文件
git add . 将当前更改添加到暂存区
git commit -m 'beizhu' 提交更改
git push origin branchname 将代码推到远程
在工作目录中修改某些文件
对修改后的文件进行快照,然后保存到暂存区域
提交更新,将保存在暂存区域的文件快照永久的转存到git目录中
<<<<<HEAD
修改1
=========
修改2
>>>>>feature1
<<<<<HEAD表示主分支,主分支的修改是修改1,>>>>>feature1表示当前分支,当前分支的修改是修改2,手动解决冲突之后,重新提交
已提交(committed),已提交表示该文件已经被安全地保存在本地数据库中了
已修改(modified),已修改表示修改了某个文件,但还没有提交保存
已暂存(staged),已修改的文件放在下次提交时要保存的清单中。
1,git checkout -b production -t origin/production
创建一个本地分支,该本地的分支production 与 远程分支 origin/production的代码是同步的.
本地分支取名production 只是为了便于自己记忆对应的是哪一个远程分支。如果你记忆牛逼的话,取asdfdasddfvdf 这样乱七八糟的名字也是可以的.
git pull就表示从远程分支把代码拉下来,使本地分支的代码与远程分支的代码同步。
git push 就是将本地的代码推到远程分支,使远程的分支与本地分支代码同步。(有的公司在生产分支,git push时,为了防止代码的胡乱提交,会设置权限,此时我们就要创建一个自己的分支,使它的代码与本地production分支的一致。然后再请求有权限的人将origin/hotfix/tianjian-propm与origin/production合并,production就相当于一个中转站一样。)
2,git checkout production (切换到production分支,拉代码)
3,git pull (保持production分支与origin/production的同步)
4,git checkout -b hotfix/tianjian-propm 然后从本地分支创建自己的分支,hotfix/tianjian-propm,名字同样也是为了记忆方便,
5,git merge production(将production分支的代码合并到自己的分支,使自己的分支与production分支的代码同步,因为production分支与origin/production分支已经同步,所以此时,origin/production, production, hotfix/tianjian-propm,三个分支是同步的)
在hotfix/tianjian-propm分支修改代码,然后提交 (提交只是将代码提交到本地的hotfix/tianjian-propm分支,)
git push origin hotfix/tianjian-propm 将本地的分支提交到远程对应的分支,首次git push时,会自动创建这样一个对应的远程分支,
请求有权限的人将 远程的 origin/hotfix/tianjian-propm合并到 origin/production,合并完成后,此时origin/production的代码就是最新的,同样再去production分支拉代码,然后在合到hotfix/tianjian-propm,保持三个分支的代码保持一致。
提交产生冲突时,去production分支将最新的代码拉下来,然后合并到hotfix/tianjian-propm,gss命令查看,产生冲突的文件,手动修改冲突,然后和修改代码一样走一次流程。
1,尽量在自己的分支上开发,灵活性,机动性高
2,若是做了什么不可逆的操作,不要慌,直接将这个分支删掉,再切一个分支就好,哈哈
网友评论