前言
相比SVN CVS的管理模式,git的代码管理管理模式在存储上可以简单理解为3份,一份是在远端服务器上,一份是在本地服务器上,还有一份就是项目工程。所以工程提交代码是提交到本地服务器,发布的时候才会提交到远端服务器上。从命令行的角度来看这是分步执行的,当然在我们的工具中可能有提交且发布的操作功能,实际上也是分步执行提交和发布。本质上还是因为分布式代码管理策略。
git命令上传项目
-
命令行中,输入 git init -
将文件夹中的内容全部添加到git管理中 git add . -
提交 git commit -m ‘first commit’ -
连接github仓库 git remote add origin https://github.com/xxx/Test.git -
git push -u origin master
项目提交成功
一、核心操作
git init
git add 文件名 文件名
git commit -m '本次提交的说明'
git push
二、解决冲突
git branch -a
git branch
git checkout -b 分支名
git checkout 分支名
git checkout master -b 新分支名
git merge 分支名
git branch -d 分支名
git branch -D 分支名 (强行删除分支)
三、情景举例
git stash
git pull
git stash pop
git reset --hard HEAD^
git pull origin master
1.git status (查看发生冲突的文)
2.然后手动合并冲突
3.git add . (添加更改后的文件)
4.git commit -m 'xj' (提交)
四、查看ssh密钥
cd ~/.ssh
cat id_rsa.pub
五、克隆远程项目
git clone 远程源地址
六、回退某个操作
git reflog
git reset --hard 某个commitId
七、和远程分支建立关联
git branch --set-upstream-to=origin/远程分支的名字 本地分支名
八、删除文件
git rm filename
git checkout -- filename
九、远程仓储
ssh-keygen -t rsa -C "youremail@example.com"
git remote add origin git@server-name:path/repo-name.git
git push -u origin master
十、多人协作
git remote -v
git push origin 本地分支名
git checkout -b 本地分支 origin/远程分支名
git branch --set-upstream 本地分支名 origin/远程分支名
十一、分支策略
1. master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
2. 干活都在dev分支上,也就是说,dev分支是不稳定的,
到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
3. 每个人都有自己的分支,时不时地往dev分支上合并就可以了
十二、其他
与git pull相比git fetch相当于是从远程获取最新版本到本地,但不会自动merge。
如果需要有选择的合并git fetch是更好的选择。效果相同时git pull将更为快捷。
git status
git log
git reset --hard HEAD^ 或
git reset --hard 3628164 (数字代表log里commit后面的id,只需要填前几位就可以)
git reflog
工作区就是你建立的能看见的目录,.git即为git的版本库,Git的版本库里存了很多东西,
其中最重要的就是称为stage(或者叫index)的暂存区,Git为我们自动创建的第一个分支master,
以及指向master的一个指针叫HEAD。
用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支
1.直接丢弃工作区的修改,用命令git checkout -- file
2.修改添加到了暂存区,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,
第二步按场景1操作
Android Studio代码管理控制
android studio 现在的代码管理已经很方便使用了,可对git、svn、cvs的仓库进行交互。 同时也具备了一个可视化的代码处理,如变化的文件、冲突的文件、提交日志,可快速方便的编辑冲突代码和对比代码前后的修改变化。同时也可以结合命令行进行更多的处理操作。
参考:https://www.cnblogs.com/godlove/p/11769572.html
|