zcl_ccc 发表于 2018-1-13 08:02:14

Git提交到码云(转)

  一.下载安装Git
  查看电脑是否安装Git,打开终端,输入git,回车如果输出如下,则代表已安装了git

view plain copy


[*]$ git
[*]usage: git [--version] [--help] [-C <path>] [-c name=value]
[*]         [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[*]         [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
[*]         [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
[*]         <command> [<args>]
[*]
[*]These are common Git commands used in various situations:
[*]
[*]start a working area (see also: git help tutorial)
[*]   clone      Clone a repository into a new directory
[*]   init       Create an empty Git repository or reinitialize an existing one
[*]
[*]work on the current change (see also: git help everyday)
[*]   add      Add file contents to the index
[*]   mv         Move or rename a file, a directory, or a symlink
[*]   reset      Reset current HEAD to the specified state
[*]   rm         Remove files from the working tree and from the index
[*]
[*]examine the history and state (see also: git help revisions)
[*]   bisect   Find by binary search the change that introduced a bug
[*]   grep       Print lines matching a pattern
[*]   log      Show commit logs
[*]   show       Show various types of objects
[*]   status   Show the working tree status
[*]
[*]grow, mark and tweak your common history
[*]   branch   List, create, or delete branches
[*]   checkout   Switch branches or restore working tree files
[*]   commit   Record changes to the repository
[*]   diff       Show changes between commits, commit and working tree, etc
[*]   merge      Join two or more development histories together
[*]   rebase   Forward-port local commits to the updated upstream head
[*]   tag      Create, list, delete or verify a tag object signed with GPG
[*]
[*]collaborate (see also: git help workflows)
[*]   fetch      Download objects and refs from another repository
[*]   pull       Fetch from and integrate with another repository or a local branch
[*]   push       Update remote refs along with associated objects
[*]
[*]'git help -a' and 'git help -g' list available subcommands and some
[*]concept guides. See 'git help <command>' or 'git help <concept>'
[*]to read about a specific subcommand or concept.
[*]macdeMacBook-Pro:~ Artron_LQQ$

如果未安装,则会输出:
view plain copy


[*]$ git
[*]The program 'git' is currently not installed. You can install it by typing:
[*]sudo apt-get install git

按照提示输入:sudo apt-get install git即可安装!!或者到此处下载:git下载, pkg包下载完成,双击安装。  输入命令:git --version 可查看当前git版本

view plain copy


[*]$ git --version
[*]git version 2.5.4 (Apple Git-61)
[*]macdeMacBook-Pro:~ Artron_LQQ$
  当然,网上也有一些安装git的途径,可自行学习...

  二.安装后需要一些配置
  配置用户名和邮箱:

view plain copy

[*]$ git config --global user.name "Your Name"
[*]$ git config --global user.email "email@example.com"
  

  

  

  

  使用 --global 修饰后设置的全局的用户,如果设置单个项目的用户,可cd到项目根目录下,执行如下命令:

view plain copy


[*]$ git config user.name "Your Name"
[*]$ git config user.email "email@example.com"
  

  

  使用命令:git config --list 可查看当前用户信息以及其他的一些信息

view plain copy


[*]$ git config --list
[*]core.excludesfile=/Users/mac/.gitignore_global
[*]difftool.sourcetree.cmd=opendiff "$LOCAL" "$REMOTE"
[*]difftool.sourcetree.path=
[*]mergetool.sourcetree.cmd=/Applications/SourceTree.app/Contents/Resources/opendiff-w.sh "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$MERGED"
[*]mergetool.sourcetree.trustexitcode=true
[*]http.postbuffer=524288000
[*]https.postbuffer=524288000
[*]user.email=你的邮箱@qq.com
[*]user.name=你的用户名
[*]macdeMacBook-Pro:~ Artron_LQQ$
  三.建立本地git仓库
  1. cd到你的项目目录

view plain copy


[*]$ cd /Users/mac/Desktop/GitTest
  

  
2. 然后,输入git命令:


view plain copy


[*]$ git init
  输出如下:

view plain copy


[*]$ git init
[*]Initialized empty Git repository in /Users/mac/Desktop/GitTest/.git/
  创建了一个空的本地仓库.
  3.将项目的所有文件添加到缓存中:

view plain copy


[*]$ git add .

git add . (注意,后面有个点)表示添加目录下所有文件到缓存库,如果只添加某个文件,只需把 . 换成你要添加的文件名即可;  4.将缓存中的文件Commit到git库
  git commit -m "添加你的注释,一般是一些更改信息"
  下面是第一次提交时的输出:

view plain copy


[*]$ git commit -m "添加项目"
[*] 添加项目
[*] 18 files changed, 1085 insertions(+)
[*] create mode 100644 GitTest.xcodeproj/project.pbxproj
[*] create mode 100644 GitTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata
[*] create mode 100644 GitTest.xcodeproj/project.xcworkspace/xcuserdata/Artron_LQQ.xcuserdatad/UserInterfaceState.xcuserstate
[*] create mode 100644 GitTest.xcodeproj/xcuserdata/Artron_LQQ.xcuserdatad/xcschemes/GitTest.xcscheme
[*] create mode 100644 GitTest.xcodeproj/xcuserdata/Artron_LQQ.xcuserdatad/xcschemes/xcschememanagement.plist
[*] create mode 100644 GitTest/AppDelegate.h
[*] create mode 100644 GitTest/AppDelegate.m
[*] create mode 100644 GitTest/Assets.xcassets/AppIcon.appiconset/Contents.json
[*] create mode 100644 GitTest/Base.lproj/LaunchScreen.storyboard
[*] create mode 100644 GitTest/Base.lproj/Main.storyboard
[*] create mode 100644 GitTest/Info.plist
[*] create mode 100644 GitTest/ViewController.h
[*] create mode 100644 GitTest/ViewController.m
[*] create mode 100644 GitTest/main.m
[*] create mode 100644 GitTestTests/GitTestTests.m
[*] create mode 100644 GitTestTests/Info.plist
[*] create mode 100644 GitTestUITests/GitTestUITests.m
[*] create mode 100644 GitTestUITests/Info.plist
  或者不添加注释 git commit,但是这样会进入vim(vi)编辑器

view plain copy


[*]# Please enter the commit message for your changes. Lines starting
[*]# with '#' will be ignored, and an empty message aborts the commit.
[*]# On branch master
[*]# Changes to be committed:
[*]#       modified:   LQQCircleShowImage.xcodeproj/project.pbxproj
[*]#       modified:   LQQCircleShowImage/TableViewCell.m
[*]#
[*]~
[*]~
[*]~
[*]~
[*]~
[*]~
[*]~
[*]~
[*]~
[*]~
[*]~
[*]~
[*]~
[*]~
[*]~
[*]"~/Desktop/LQQCircleShowImage/.git/COMMIT_EDITMSG" 8L, 292C

在这里可以输入更改信息,也可以不输入,然后 按住 shift + :,输入wq 即可保存信息并退出vim编辑器;  四,建立远程库
  在一些代码托管平台创建项目,例如github或者开源中国社区,这里已开源中国社区为例;
  创建项目后,会生成一个HTTPS链接,如下:

view plain copy


[*]https://git.oschina.net/liuqiqiang/gitTest.git
  五,将本地的库链接到远程库

  终端中输入: git remote add origin HTTPS链接

view plain copy

[*]$ git remote add origin https://git.oschina.net/liuqiqiang/gitTest.git
  六.上传代码到远程库,上传之前最好先Pull一下,再执行命令: git pull origin master

  输出:

view plain copy

[*]$ git pull origin master
[*]warning: no common commits
[*]remote: Counting objects: 3, done.
[*]remote: Total 3 (delta 0), reused 0 (delta 0)
[*]Unpacking objects: 100% (3/3), done.
[*]From https://git.oschina.net/liuqiqiang/gitTest
[*] * branch            master   -> FETCH_HEAD
[*] *       master   -> origin/master
[*]Merge made by the 'recursive' strategy.
[*] README.md | 1 +
[*] 1 file changed, 1 insertion(+)
[*] create mode 100644 README.md
  即pull成功,

  七.接着执行:git push origin master
  完成后输出:

view plain copy

[*]$ git push origin master
[*]Counting objects: 34, done.
[*]Delta compression using up to 4 threads.
[*]Compressing objects: 100% (29/29), done.
[*]Writing objects: 100% (34/34), 15.63 KiB | 0 bytes/s, done.
[*]Total 34 (delta 3), reused 0 (delta 0)
[*]To https://git.oschina.net/liuqiqiang/gitTest.git
[*]   5e2dda1..537ecfemaster -> master
  即将代码成功提交到远程库!!!

  接着到你的远程库查看,提交前:

  提交成功后:

  注意:操作的时候,指令不要输错了!!!!
  下面这个是输错了 orgin的输出:

view plain copy

[*]git pull orgin master
[*]fatal: 'orgin' does not appear to be a git repository
[*]fatal: Could not read from remote repository.
[*]
[*]Please make sure you have the correct access rights
[*]and the repository exists.
  正确的应该是origin!!
  如果在push的时候有如下输出:

view plain copy

[*]$ git push -u origin master
[*]To https://git.oschina.net/liuqiqiang/LQQCircleShowImage.git
[*] !       master -> master (fetch first)
[*]error: failed to push some refs to 'https://git.oschina.net/liuqiqiang/LQQCircleShowImage.git'
[*]hint: Updates were rejected because the remote contains work that you do
[*]hint: not have locally. This is usually caused by another repository pushing
[*]hint: to the same ref. You may want to first integrate the remote changes
[*]hint: (e.g., 'git pull ...') before pushing again.
[*]hint: See the 'Note about fast-forwards' in 'git push --help' for details.
  

  看提示可知道,需要先pull一下,即执行一次:git pull origin master
  然后再执行:git push origin master
  分支管理
  新建分支

view plain copy

[*]$ git branch newbranch
  查看分支


view plain copy

[*]$ git branch
  输出:


view plain copy

[*]* master
[*]newbranch
  *代表当前所在的分支
  切换分支

view plain copy

[*]$ git checkout new branch
输出
view plain copy

[*]Switched to branch 'newbranch'
  切换后可用git branch查看是否切换到当前分支


view plain copy

[*]master
[*]* newbranch
  

  提交改动到当前分支

view plain copy

[*]$ git add .
[*]$ git commit -a
  可使用git status查看提交状态

  接着切回主分支

view plain copy

[*]$ git checkout master
  输出:


view plain copy

[*]Switched to branch 'master'
  将新分支提交的改动合并到主分支上


view plain copy

[*]$ git merge newbranch
  输出:


view plain copy

[*]Updating cc73a48..93a1347
[*]Fast-forward
[*] GitTest.xcodeproj/project.pbxproj                        |   9 +++++++++
[*] .../UserInterfaceState.xcuserstate                     | Bin 0 -> 7518 bytes
[*] GitTest/test.h                                           |13 +++++++++++++
[*] GitTest/test.m                                           |13 +++++++++++++
[*] 4 files changed, 35 insertions(+)
[*] create mode 100644 GitTest.xcodeproj/project.xcworkspace/xcuserdata/Artron_LQQ.xcuserdatad/UserInterfaceState.xcuserstate
[*] create mode 100644 GitTest/test.h
[*] create mode 100644 GitTest/test.m
  这里我提交了两个文件,即:test.h和test.m

  如果合并后产生冲突,可输入以下指令查看冲突:

view plain copy

[*]$ git diff
  修改之后,再次提交即可;

  接下来,就可以push代码了:

view plain copy

[*]$ git push -u origin master
  这时可能需要你输入你的github用户名和密码,按照提示输入即可;

  删除分支

view plain copy

[*]$ git branch -D newbranch
  输出


view plain copy

[*]Deleted branch newbranch (was 93a1347).
  分支管理相关资料:点击打开链接
  

  以上只是初级的最简单的指令操作,其他复杂的操作可自行摸索...
页: [1]
查看完整版本: Git提交到码云(转)