为了方便自己的代码管理,通常是把自己的写的一些小项目分享到GitHub 或者git.oschina上面!

  区别:

  GitHub 只能创建公开的项目,国外的,速度慢!

  git.oschina 开源中国的代码托管平台,可建私有的,国内的,速度快!

  一,准备工作:

  Git 客户端安装:下载git 客户端,并安装!

  附:下载地址:git客户端 ,安装教程!

  在oschina/GitHub创建账号并创建项目!

  

  然后,就得到了远程仓库的url:

  https://git.oschina.net/ut2002/WebViewSSL.git

  

  二,Git操作流程:(以oschina平台为例,github等同)

  Git项目:git@github.com:用户名/项目名.git

  OsChina项目:git@oschina.net:用户名/项目名.git

  方法一:本地创建项目根目录(本地仓库),然后与远程oschina关联!

  -- 初始化Git仓库 :git init ; //新建一个本地仓库

  -- 添加文件 :git add https://www.cnblogs.com/ut2016-progam/p/* ; //将目录中所有文件添加;

  -- 提交改变到缓存 :git commit -m 'description' ;

  -- 本地git仓库关联Git仓库 :

  git remote add origin https://git.oschina.net/ut2002/WebViewSSL.git ;

  // 添加远程仓库,origin只是一个远程仓库的别名,可以随意取

  -- 提交到Git仓库前先更新远程仓库内容至本地 : git pull origin master ;

  // 防止远程仓库,有更新而产生冲突

  -- 提交到Git中 : git push -u origin master ;

  //将本地仓库push远程仓库,并将origin设为默认远程仓库

  在本地项目中右键进入git 命令行模式

  

  

  然后,按上面的步骤进行操作!

  

  

  

  输入 账号与密码,进行上传!

  但是报错如下:

  

  根据提示先pull

  

  这是因为期间远程仓库有可能有更新,提示在push前因先把远程仓库的代码更新到本地,才能push!

  Git pull origin master

  

  上传成功!

  注意:有时有开分支开发时,需要合并分支至master,

  输入命令git merge gh-pages(分支名) 报错! fatal:refusing to merge unrelated histories.

  原因是合并不相关的会产生新的历史记录,所以应该这样

  git merge gh-pages --allow-unrelated-histories

  方法二:不用关联远程仓库,直接从git仓库拉源码至本地!

  -- 从Git仓库拉项目到本地 :git clone https://git.oschina.net/ut2002/HelloDemo.git , 注意克隆 的时候直接在仓库根目录即可, 不用再创建项目根目录 ;

  拉下来的项目会自动生成 .git文件,表明,是个git仓库,不用git init来初始化!

  -- 添加文件 :git add https://www.cnblogs.com/ut2016-progam/p/* , 将目录中所有文件添加;

  -- 提交缓存 :git commit -m 'description';

  -- 合并 master :git merge master;

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

  -- 提交到远程GitHub仓库 : git push 远程仓库地址 master ;

  之后修改提交 :

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

  -- 查看文件变更 : git status ;

  -- 提交代码到本地缓存 : git commit -m 'description';

  --提交代码到远程GitHub仓库 :git push ;

  图文步骤:

  在要建立本地仓库的文件中进入git命令行模式:如方法一 进入git命令行模式

  

  从远程仓库 clone下项目,然后就会在命令行的目录下生成.git文件!

  

  如在git pull 报错:

  

  错误可能是因为在你以前pull下来的代码没有自动合并导致的.

  保留你本地的修改 git merge --abort git reset --merge

  合并后记得一定要提交这个本地的合并,然后在获取线上仓库!再git pull!

  如在 git add --all 报错

  

  原因分析:

  在windows中的换行符为 CRLF, 而在linux下的换行符为:LF

  使用git来生成工程后,文件中的换行符为LF, 当执行git add .时,系统提示:LF 将被转换成 CRLF

  解决方法:

  删除刚刚生成的.git文件

  rm -rf .git

  git config --global core.autocrlf false

  这样系统就不会去进行换行符的转换了

  最后重新执行

  Git init 再 git add --all

  就按正常步骤操作!

  如 git push 报 : error:src refspec master does not match any

  原因分析

  引起该错误的原因是,目录中没有文件,空目录是不能提交上去的

  解决方法

  touch READMEgit add README git commit -m 'first commit'git push origin master

  方法三:用Git Gui图形化界面来操作!

  - - 创建 Create New Repository

  

  Create New Repository : 创建新的版本库

  Clone Existing Repository :克隆存在的版本库

  Open Existing Repository :打开存在的版本库

  

  

  如本地目录没有源文件,可以把源文件拷贝至目录下!

  ----提交本地文件至git仓库

  

  确定后

  

  

  填写提交描述信息

  

  然后填写远程仓库地址

  

  输入账号与密码成功!

  

  ----从git仓库clone项目,再提交

  选择克隆新的版本库然后Clone git项目

  

  注意:本地目录需是没有存在的目录,不然会报已存在,因为clone下来会自动创建

  

  因为项目文件没有任何改动,所以显示的是空白!

  

  可通过,clone任一开源项目地址,再push自己的远程仓库,这样,实现下载开源项目,修改,学习,再push至自己的远程仓库,来记录自己学习的过程!!!很方便滴!!

  三种方法,比较推荐用Git Gui这样的方式 ,能减少出错!!

  附二,简单教程

  

  附 git分支开发原则:

  原文链接http://blog.csdn.net/YanJiangbo/article/details/25738737

  如果本地dev分支有修改,则需要先切换到master分支,把本地分支的修改merge回master(Git merge dev),然后在master上把合并后的内容push到master上;然后再切换回本地分支,再把master的内容merge回分支,然后就继续在分支开发。

  开发流程:

  // 查看本地分支

  git branch

  // 显示本地、服务器所有分支

  git branch -a

  // 显示本地分支和服务器分支的映射关系

  git branch -vv

  // 切换分支(和创建分支就差一个-b参数)

  git checkout {{branch_name}}

  // 创建新分支,新分支的代码来自于当前分支

  git checkout -b [分支名]

  // push本地分支代码到远端服务器,如果远端服务器没有该分支,将会自动创建;

  git push origin [远端分支名]

  // pull远端分支代码到本地当前分支(建议使用)

  git pull origin master

  如果只想用git pull,可能需要建立track关系,则使用

  git branch --set-upstream-to=origin/

  输出结果:Branch h5_dev set up to track remote branch h5_dev from origin.

  // 合并本地master分支到当前分支,比如当前处于dev分支,则把master上的代码merge到dev分支上

  git merge master

  // 合并远程master分支到当前分支

  git merge origin/master

  // 删除本地分支

  git checkout {{another_branch}}

  git branch -d {{local_branch_name}}

  //删除远程分支

  git push origin --delete {{branch_name}}

  # 假设本地有两个分支: master和dev, 使用dev进行本地开发# Step1. dev.commitgit status # 当前分支,修改的文件git diff # 具体的修改git commit -m "{COMMIT_MESSAGE}" . # 提交# Step2. master.update.merge-devgit checkout master # 切换到master分支git pull origin master:master # 更新mastergit merge dev # 合并dev分支的修改git push origin master:master # 提交代码到远程Git库# Step3. dev.updategit pull origin master:dev # 更新devgit checkout dev # 切换回dev, 以便下一步的开发

  常用命令:

  1. git config --global user.name

  2. git config --global color.status auto

  3. git config --global color.diff auto

  4. git remote -v// 查看远程分支的git路径

  5. git clone git@192.168.53.123/tv.git

  6. git status // 查看当前版本的状态(是否修改)

  7. git add xyz // 添加当前修改的文件到暂存区 or 跟踪新文件(git add .把所有修改的文件add在暂存区)

  8. git commit -m '{{update_msg}}'

  9. git rm xxx // 从当前跟踪列表移除文件,并完全删除

  10. git rm -cached xxx// 仅在暂存区删除,保留文件在当前目录,不再跟踪

  11. git mv old_name new_name// 重命名文件

  12. git log

  13. git log -n

  14. git log --stat

  15. git show b4f44fe

  16. git diff

  强制回滚命令:

  git reset --hard e1da2c37bdaf3df52b9cf105ec7a7bd83f488bc1(上一次提交的号)

  把远程分支拉倒本地,并建立关联关系track:

  git checkout --track origin/jiangbo_dev

  Branch jiangbo_dev set up to track remote branch jiangbo_dev from origin.

  Switched to a new branch 'jiangbo_dev'

  来自为知笔记(Wiz)