Git的一些用法(下)

(4) 提交分支 

提交分支命令 : 将本地的分支提交到 GitHub中;

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. git push origin experiment  



(5) 分支合并移除

合并分支命令 : 合并分支之后, 分支中有的文件在 主分支中也会显示, 相当于将branch1 分支中的文件拷贝了一份到master分支中;

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. git merge branch1  

合并结果 : 

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. Updating f1bb97a..7f5785e  
  2. Fast-forward  
  3.  description_branch1.txt | 0  
  4.  1 file changed, 0 insertions(+), 0 deletions(-)  
  5.  create mode 100644 description_branch1.txt  



.

(6) 删除分支

删除分支命令 : 

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. git branch -d branch1  


强制删除分支命令 : 如果branch1 分支还没有被合并的话, Git是不允许删除这个分支的, 此时要想删除该分支, 就只能使用下面的命令强制删除该分支 : 

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. git branch -D branch1  



4. Git工作流程

(1) 两种工作流程

协作开发工作流程 : 这种情况是最复杂的情况, 多人团队共同开发一个项目;

-- 与远程仓库同步 : git pull ;

-- 修改文件 : 添加 删除 修改文件;

-- 查看变更 : git status ;

-- 载入变更 :添加文件, 先使用git add fileName, 在使用 git commit -m 'note' 载入变更; 如果是删除 修改文件, 直接使用 git commit -m 'note' 提交;

-- 重复 : 重复执行 修改文件 查看变更 载入变更 提交载入动作;

-- 上传 : 使用 git push 命令将项目源码提交带GitHub中去;

单独开发工作流程 : 如果是个人独立开发, 仅追踪本地文件变更, 就不需要提交到服务器上, 因为Git是分布式的;

-- 修改文件 : 

-- 提交变更 : 

-- 重复 : 

(2) 简单示例

1> 独立开发示例

该示例不会上传, 仅在本地进行操作;

从GitHub中检出项目源码 : 注意, 检出的源码是根目录源码, 我们在总仓库的根目录检出即可,不同再为项目创建目录;

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. git clone git@github.com:han1202012/AndroidPictureViewer.git  

-- 检出克隆结果 : 

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. Cloning into 'AndroidPictureViewer'...  
  2. remote: Counting objects: 86, done.  
  3. remote: Compressing objects: 100% (62/62), done.  
  4. remote: Total 86 (delta 3), reused 86 (delta 3)  
  5. Receiving objects: 100% (86/86), 1.67 MiB | 109.00 KiB/s, done.  
  6. Resolving deltas: 100% (3/3), done.  
  7. Checking connectivity... done.  


删除bin和gen目录 : 这两个目录是Android工程编译产生的临时文件, 没有必要上传到GitHub中去;

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. rm -rf bin gen  

-- 查看删除结果状态 : 

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. git status  

-- 结果 : 

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. On branch master  
  2. Your branch is up-to-date with 'origin/master'.  
  3.   
  4. Changes not staged for commit:  
  5.   (use "git add/rm <file>..." to update what will be committed)  
  6.   (use "git checkout -- <file>..." to discard changes in working directory)  
  7.   
  8.         deleted:    bin/AndroidManifest.xml  
  9.         deleted:    bin/ImageView_Test.apk  
  10.         deleted:    bin/classes.dex  
  11.         deleted:    bin/res/crunch/drawable-xxhdpi/ic_launcher.png  
  12.         deleted:    bin/resources.ap_  
  13.         deleted:    gen/shuliang/han/imageview_test/BuildConfig.java  
  14.         deleted:    gen/shuliang/han/imageview_test/R.java  

提交缓存 : 

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. git commit -a  

-- 提交结果 : 

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. [master e4377ba] delete bin and gen directory.  
  2.  28 files changed, 2 insertions(+), 110 deletions(-)  
  3.  create mode 100644 .gitignore  
  4.  delete mode 100644 bin/AndroidManifest.xml  
  5.  delete mode 100644 bin/ImageView_Test.apk  
  6.  delete mode 100644 bin/classes.dex  
  7.  delete mode 100644 bin/resources.ap_  
  8.  delete mode 100644 gen/shuliang/han/imageview_test/BuildConfig.java  
  9.  delete mode 100644 gen/shuliang/han/imageview_test/R.java  

2> 协作开发示例

与远程仓库同步 : 

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. git pull  

-- 如果其他人没有提交项目到GitHub上, 就会出现下面结果 : 

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. Already up-to-date.  


修改文件后查看变更 : 

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. git status  

-- 如果没有变更会出现下面情况 : 

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. On branch master  
  2. Your branch is ahead of 'origin/master' by 1 commit.  
  3.   (use "git push" to publish your local commits)  
  4.   
  5. nothing to commit, working directory clean  


载入变更 : 如果有变更, 那么使用命令载入变更. 使用 git commit -a 或者 git add 命令;

-- 添加文件 : 先使用 git add 文件名 来添加文件到缓存, 之后使用 git commit -m '' 命令提交代码到本地缓存;

-- 删除改变文件 : 直接使用 git commit -m '', 提交删除 或则 改变 到本地缓存;

提交项目源码到服务器 : 

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. git push  

-- 提交源码结果 : 

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
 
  1. warning: push.default is unset; its implicit value is changing in  
  2. Git 2.0 from 'matching' to 'simple'. To squelch this message  
  3. and maintain the current behavior after the default changes, use:  
  4.   
  5.   git config --global push.default matching  
  6.   
  7. To squelch this message and adopt the new behavior now, use:  
  8.   
  9.   git config --global push.default simple  
  10.   
  11. See 'git help config' and search for 'push.default' for further information.  
  12. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode  
  13. 'current' instead of 'simple' if you sometimes use older versions of Git)  
  14.   
  15. Counting objects: 4, done.  
  16. Delta compression using up to 2 threads.  
  17. Compressing objects: 100% (2/2), done.  
  18. Writing objects: 100% (3/3), 292 bytes | 0 bytes/s, done.  
  19. Total 3 (delta 1), reused 0 (delta 0)  
  20. To git@github.com:han1202012/AndroidPictureViewer.git  
  21.    1ddf8c7..e4377ba  master -> master  



查看GitHub中的源码情况 : gen 和 bin 目录果然被删除了;

原文地址:https://www.cnblogs.com/benbentu/p/4950141.html