-
添加远程仓库
$git remote add [name] [url]
-
修改远程仓库
$git remote set-url --push[name][newUrl]
-
删除远程仓库
$git remote rm [name]
-
克隆远程仓库 (2种协议,一种是https协议, 一种是ssh协议)
$git clone https://github.com/youran1024/GitTest.git
$git clone [email protected]:youran1024/GitTest.git
-
创建本地仓库
$git init
-
关联远程仓库 (创建好本地的仓库后,通过此命令跟远程仓库做关联)
$git remote add origin git@server-name:path/<remoteRepository>.git
-
查看远程相关信息
$git remote -v
-
查看分支
$git branch
-
查看远程分支
$git branch -a
-
创建本地分支
$git branch <newBranch>
-
建立本地分支和远程分支的关联
$git branch --set-upstream <localBranch> origin/<remoteBranch>
-
创建远程分支到本地
$ git checkout -b <localBranch> origin/<remoteBranch>
-
创建分支 (把本地分支推送到远程,或者把本地的代码更新到远程对应的分支)
$git push origin <localBranchName>
-
切换分支
$git checkout <branchName>
-
创建并切换分支
$git checkout -b <branchName>
-
删除分支
$git branch -d <branchName>
-
强制删除分支(如果有没有提交的代码,需要强制删除,才能删掉分支,否则要首先撤掉修改过的代码)
$git branch -D <branchName>
-
删除远程分支
$git push origin --delete <remoteBranchName>
-
合并其它分支到当前分支
$git merge <branchName>
-
同步本地远程分支
$git checkout --track origin/develop
-
添加某个分支的某个Commit
git cherry-pick #commitID#
通过cherry-pick 命令取出某个CommitID, 然后同步到某个分支上
-
合并分支,但是不合并分支上的Commit
$ git merge --squash #branch#
#branch#上的Commits 会被当成一个 修改 提交到#当前分支#, 但并没有Commit,所以完成后需要Commit 一下
-
通过补丁的方式,执行合并。详解
首先把分支里的每个提交(commit)取消掉,然后把它们临时保存为补丁(patch)(这些补丁放到".git/rebase"目录 中),最后把#当前分支#更新到最新的#branch#分支,最后把保存的这些补丁应用到#当前分支#分支上
$ git rebase #branch#
碰到冲突后,修改冲突
$ git rebase --continue
终止
$ git abort
- 手动解决
-
和当前库里最新的作比较
$git diff HEAD -- #fileName#
-
没
git add .
之前$git checkout -- #file#
-
撤销Commit 之前的操作
git reset HEAD #fileName#
$git stash
- 列出保存的
$git stash list
先用Git Log 查看CommitID,根据Id做版本回退
-
回到当前版本(HEAD)的上一版本
$git reset --hard HEAD^
上上版本
$git reset --hard HEAD^^
上N个版本
$git reset --hard HEAD^~N
-
根据Commit ID 做回退
$git reset --hard #Commit id#
-
(往后回退了,又想往前回退)需要以前的Commit 记录
$git reflog
-
保存
$git stash
-
列表
git stash list
-
恢复
git stash apply
-
删除
git stash drop
-
恢复并删除
git stash pop
-
查看标签
$git tag
-
创建标签:
$git tag <tagName>
-
创建标签并添加标签信息
$git tag -a <tagname> -m "blablabla...
-
查看标签的信息
$git show <tagName>
-
提交Tag到远程 (提交操作同分支)
$git push origin <tagName>
-
提交本地所有的Tag (提交本地所有的分支那??)
$git push origin --tags
-
删除标签
$git tag -d <tagName>
-
删除远程tag
$git push origin :refs/tags/<tagname>
-
获取标签
¥git checkout -b #newbranch# #tag#
#####其它
-
酷炫的Git log 查看方式 个性化你的Log
[1]
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative
[2]
git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
-
git 配置别名 (以后可以用 git lg 代替 git log --graph)
[git lg]显示图形化的Log
git config --global alias.lg "log --graph"
[git last]查看看最后一次提交信息
$ git config --global alias.last 'log -1'
-
忽略某些文件
GitHub已经为我们准备了各种配置文件gitHub
个性化你的Log
- 传送门:biu ~
关于git的详细介绍请参照廖雪峰老师的讲解。
-
你要知道,工作区,暂存区,和版本库 工作区修改文件后,通过
git add .
添加到暂存区,如果没有问题,则通过git commit -m "#message#"
提交到版本库 -
在操作员称仓库前请注意你是否具有某远程仓库的操作权限
-
在熟练使用前请不要在线上分支上做练习
如果你需要补充这个文档,欢迎ForkMe并提交你的修改
- 传送门:Mr.Yang@github
2015 Copy right @Mr.Yang v1.0.0