一.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中打标签非常简单,首先,切换到需要打标签的分支上:
$ git branch
- dev
master
$ git checkout master
Switched to branch 'master'
然后,敲命令git tag <name>就可以打一个新标签:
$ git tag v1.0
可以用命令git tag查看所有标签:
$ git tag
v1.0
默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?
方法是找到历史提交的commit id,然后打上就可以了:
$ git log --pretty=oneline --abbrev-commit
6a5819e merged bug fix 101
cc17032 fix bug 101
7825a50 merge with no-ff
6224937 add merge
59bc1cb conflict fixed
400b400 & simple
75a857c AND simple
fec145a branch test
d17efd8 remove test.txt
比方说要对add merge这次提交打标签,它对应的commit id是6224937,敲入命令:
$ git tag v0.9 6224937 或者 $ git tag -a v0.1 -m "version 0.1 released" 3628164
注意,标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname>查看标签信息:
十.一些常用命令
git status 查看状态和提示
cat readme.txt 查看.md 和txt文件内容
git checkout -- README.md 撤销最近一次的修改 有两种情况
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态;
$ git reset HEAD readme.txt 少了—- 就不是回退了 撤销缓存区的某个文件
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,git reset --hard 版本记录号
$ 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 color.ui true
快捷 方法
有没有经常敲错命令?比如git status?status这个单词真心不好记。
如果敲git st就表示git status那就简单多了,当然这种偷懒的办法我们是极力赞成的。
我们只需要敲一行命令,告诉Git,以后st就表示status:
$ 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"
网友评论