一.Git学习链接
Git的官方网站:http://git-scm.com
https://git-scm.com/download/mac 安装
二. Git初始化
当使用一台新的机器,且从没有使用过git。
首先从官网下载GIT工具,Xcode自带不用下,Intellj工具族需要下载安装。
安装好执行git config --global user.name “xxx” 配置git账户名
3.git config --global user.email 'xxx' 推荐 这里填写你常用的邮箱账号作为你git的账户name
三. 新建代码工程
以iOS开发为例
1.桌面新建一个工程名称为App 终端进入App目录
2.去GitHub网站建立自己的共有仓库
3.Git初始化工程病进行第一次提交
3.1终端操作
Last login: Tue Sep 12 10:54:52 on ttys003
hongjunzhangdeMacBook-Pro:~ hongjunzhang$ cd Desktop/App
hongjunzhangdeMacBook-Pro:app hongjunzhang$ ls
app app.xcodeproj appTests appUITests
hongjunzhangdeMacBook-Pro:app hongjunzhang$ git init
hongjunzhangdeMacBook-Pro:app hongjunzhang$ git add README.md
hongjunzhangdeMacBook-Pro:app hongjunzhang$ git commit -m "first commit"
hongjunzhangdeMacBook-Pro:app hongjunzhang$ git remote add origin https://github.com/zhj1214/dasdsadasfa.git
hongjunzhangdeMacBook-Pro:app hongjunzhang$ git push -u origin master
3.2再啰嗦一句
之后的代码修改和提交 请按照以下步骤
git add .
git commit -m'备注日志'
git pull
git push
四.多人合作处理冲突
多人合作时当我们使用git pull合并他人代码的时候有可能就会发生冲突
使用git status查看那些文件有冲突 git diff 查看文件修改的内容
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改如下后保存:
4.1分别进入到每一个文件中,手动修改冲突的部位
修改完毕后,执行git -u
再执行git commit -m'' 、git pull、 git push
4.2 某个文件你想使用对方/自己的版本
执行git checkout --theirs/ours 文件名
git官网 冲突操作
http://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E8%BF%9C%E7%A8%8B%E5%88%86%E6%94%AF
五.操作分支
1.新建分支
git branch 分支名(不会切换到新的分支)
git checkout -b 分支名(会同时切换到新的分支)
2. 查看已有分支
git branch
3. 切换分支
git checkout 分支名
4. 添加新的分支到服务器
git add -A .
git commit -m”注释”
git push origin 本地分支名:服务器分支名
六.日志
1. 提交历史纪录
git log
2. 提交版本记录
git reflog
3.查看所有的提交记录 以及完整的 git comit id
git log --pretty=oneline
用git log --graph命令可以看到分支合并图
用git remote -v显示更详细的信息 查看版本库 和 远程分支的详细信息
七. 回退
git reset --hard xxx 版本记录号
八. 取消跟踪 文件
git update-index --assume-unchanged your_file_path
继续跟踪文件
git update-index --no-assume-unchanged your_file_path
九. 创建标签
在Git中打标签非常简单,首先,切换到需要打标签的分支上:
(1)查看所有tag
git tag
(2)增加标签
增加标签之前请先commit 当前所有内容,或找到历史提交的commit id给指定记录增加标签
git tag -a v0.0.1 -m '第一个标签'
末尾可加 commit id, 这个id不是必须的
注意,标签不是按时间顺序列出,而是按字母排序的。可以用git show
十.一些常用命令
git status 查看状态和提示
cat readme.txt 查看.md 和txt文件内容
git checkout -- README.md 撤销最近一次的修改 有两种情况
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态;
rm test.txt 删除文件 当然可以撤销 这个删除恢复删除的文件 git checkout -- README.md
并不是你不想提交,而是工作只进行到一半,还没法提交,预计完成还需1天时间。但是,必须在两个小时内修复该bug,怎么办?
幸好,Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:
$ git stash
Saved working directory and index state WIP on dev: 6224937 add merge
HEAD is now at 6224937 add merge
实际上,Git还有很多可配置项。
比如,让Git显示颜色,会让命令输出看起来更醒目:
git config --global alias.st status
最变态的 查看提交记录方法 git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
git merge:
master 合并了 xxx分支
切换到远程分支
git branch -a,列出所有分支名称如下:
remotes/origin/dev
remotes/origin/release
git checkout -b dev origin/dev,作用是checkout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支
git checkout -b release origin/release,作用参见上一步解释
git checkout dev,切换回dev分支,并开始开发。
临时存储脏代码
git stash
git stash list
git stash pop stash@{0} //删除并应用 脏代码
git stash drop stash@{0} //删除这个 脏代码