- 配置用户信息
$ git config --global user.name "xxx"
$ git config --global user.email xxx@example.com
如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或者电邮,只要去掉--global 进入对应文件夹重新配置即可,新的设定保存在当前项目的.git/config 文件里。
二 初始化新仓库
要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行:
$ git init
如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交:
$ git add . 当前目录下的所有问价
$git add xxx 当前目录下的某个文件
$git commit -m "描述语言(例如:初始化项目)"
$git status 检查当前文件状态
三 克隆仓库(远程仓库)
$git clone https://github.com/AFNetworking/AFNetworking.gitgit
四 查看更新了那些内容
$git diff 查看未暂存的改动
$git diff --cached 查看已暂存的改动
五:回退到某个版本
git reset --hard 版本号
跳过暂存区域直接提交(不需要再git add)
$git commit -a -m "xx"
六:暂存
当前某个分支的代码没写完但是又想切换到其他分支工作 ,那么可以先将当前分支上的内容暂存
1 git stash 暂存
2 恢复:一是用git stash apply
恢复,但是恢复后,stash内容并不删除,你需要用git stash drop
来删除另一种方式是用git stash pop
,恢复的同时把stash内容也删了:
3.git stash list 查看当前暂存
移除跟踪
$git rm --cached XX
查看提交历史
$git log
$git reflog
$git log --graph 查看分支合并图
查看远程仓库
$git remote
$git remote -v 可以显示对应的克隆地址
添加远程仓库
$ git remote add sdweb https://github.com/rs/SDWebImage.git 关联远程仓库
sdweb 为自己定义远程仓库的名字,一般填origin 代表远程的
$ git push -u origin master 推送到远程仓库 第一次推送的时候加-u以后就不需要直接git push origin(远程仓库名) master(分支名)
$ git fetch sdweb抓取信息
$ git remote show origin 查看远程仓库信息
$ git remote rename sdweb sweb重命名
$ git remote rm sweb 移除远程仓库
标签
$git tag 查看标签
$ git tag -a v1.4 -m 'my version 1.4'含有附注的标签
签署标签:只需将-a 换成-s(signed);
$ git show v1.4 查看标签信息
分享标签到服务器
$ git push origin v1.5
$ git push origin --tags
分支
$ git branch xxx 新建分支§
$ git checkout xxx 移到当前分支
$ git checkout -b dev 新建dev 分支并移动到dev分支
$ git checkout master
$ git merge xxx 合并分支
$ git branch -d xxx 删除分支
$ git branch --merged 查看已经合并和未合并的分支
$ git merge --no-ff -m "merge with no-ff" dev 强制禁用
Fast forward
模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息
git branch --no-merged
-
查看远程库信息,使用
git remote -v
; -
本地新建的分支如果不推送到远程,对其他人就是不可见的;
-
从本地推送分支,使用
git push origin branch-name
,如果推送失败,先用git pull
抓取远程的新提交; -
在本地创建和远程分支对应的分支,使用
git checkout -b branch-name origin/branch-name
,本地和远程分支的名称最好一致; -
建立本地分支和远程分支的关联,使用 git branch --set-upstream-to=origin/branch-name branchname
-
从远程抓取分支,使用
git pull
,如果有冲突,要先处理冲突。