您的位置:首页 > 其它

git相关

2016-04-20 14:46 274 查看
--问题:git commit后默认进入vim窗口,编辑完注释后如何提交呢?也就是如何退出vim?

方法:先按ESC(退出编辑模式),然后输入 :wq! 就ok了,如果不想提交想取消了怎么办呢,输入:q!(退出,但不保存,相当于取消了)

--git常用命令:

  git init  (初始化版本库)

  git config --global user.name "..."  (配置全局用户信息,就是告诉git你是谁)

  git config --global user.email "..."  (配置全局用户信息,就是告诉git你是谁)

  git add "fileName" (commit之前一个一个添加要提交的文件)

  git add .  (commit之前添加全部要提交的文件)

  git commit  (提交到仓库,会进入vim,参考最上面的问题)

  git commit -m "..."  (不进入vim,直接输入本次注释并提交)

  git commit -a -m "..."  (git add和commit的合并,但新创建的文件不行,还是得用add命令添加)

  git log  (列出所以提交记录,最上面是最新的提交)

  git status  (当前仓库的状态,比如会列出修改了哪些文件)

git log -p   (列出log详细信息)
git log tag/commitID..tag/commitID    (查看指定版本区间的记录)
git log tag/commitID..    (查看指定版本之后的所以记录)
git log -since="2 weeks ago"   (显示最近2周之内的记录)
git log branch1..branch2    (显示在分支1不在分支2的记录)
git branch "newBranchName"    (创建分支)
git branch "newBranchName" "commit id or tagName"    (基于某个版本创建分支)
git checkout "toBranchName"   (切换分支)
git merge "branchName"    (合并分支)(在当前分支merge别人, merge自己相当于没merge,只要有关联可以跨主分支merge)
gitk   (图形界面展示log)
git branch -d "branchName"    (删除已经merge的分支)
git branch -D "name"    (不顾一切删除分支)
git clone "uri"   (克隆一个版本库到当前目录)
git clone "originUri" "destinationPath"    (克隆版本库到指定目录)
git push    (拉去更新,不写远程地址,适用于从远程克隆过来的版本库)
git push "remotePath"    (适用于母体或改变默认remote的拉去)

git show "commit id"/"branchName"/"HEAD"    (查询 某次提交/分支/当前分支头 的详情)
git show HEAD^    (查看head的父母的信息)
git show HEAD^^    (查看head的父母的父母的信息)
git show HEAD~4    (查看head上溯4代的信息)
git show HEAD^1    (因为merge可能会产生双父母,查看第一个父母,把1改成2就是查看第二个父母)
git tag "newName" "commit id"    (使用tag给某次提交起别名,然后就可以使用别名来进行一些操作,如:查看详情,基于该版本创建分支等)

git tag -d <tagname> 删除本地tag

git push origin --delete tag <tagname> 删除远程tag

git push origin [tagname] 推送本地tag到远程

git reset HEAD <file>  (撤销add操作,将其还原到1阶段)

git checkout --<fle>  (撤销文件的修改,相当于svn revert)

git reset总结:

  git reset [枚举参数] [要恢复到的版本号]

  枚举参数:--hard:将working tree和index file都撤销到指定版本号

       --mixed:会撤销commit和index file,保留working tree

       --soft:只撤销commit,保留working tree和index file

使用reset配合log或者show来查看版本号,想看更详尽的操作记录可以使用reflog(包含撤销步骤都显示出来了)

本地撤销到指定版本后,使用-f强制更新远程代码库:git push -f origin [branchName]

git grep "keyWord"    (在所有历史记录中搜索包含keyword的行)
git grep "keyWord" "tag or commit id"    (在指定版本中搜索包含keyword的行)

git remote -v  (查看远程仓库)

git remote add origin git@github.com:githubUserName/repoName  例如:git remote add origin git@github.com:dreamofei/RepoTest  (将本地新的git仓库于github上新建的远程仓库关联)

Git原理:

git维护的代码分成三部分,当前工作目录(记为1:working tree)->index file(记为2,add后的区域)->git仓库(记为3,commit后的区域),因此diff命令比较如下:

  git diff  (查看2到1的变化)

  git diff --cached  (查看3到2的变化)

  git diff HEAD  (查看3到1的变化)

如果遇到本地显示的远程分支与远程服务器上的分支不符,使用git remote update --prune 进行分支列表刷新操作

创建远程分支:现在本地创建分支branch001,然后git push origin branch001,就在远程创建了branch001分支(直接使用下面的命令也可以,相当于提交,第一次会创建)

提交分支数据到远程服务器:git push origin <local_branch_name>:<remote_branch_name>,如果当前在要提交的分支下,可以直接git push

删除远程分支:git push origin :branch001

查看远程分支:git branch -r

创建对应远程分支的本地分支:比如远程有分支branch002,那么git branch branch002 origin/branch002,就在本地创建了一个与远程分支对应的本地分支了

查看本地分支所对应的远程分支:git branch -vv

将本地分支和远程分支建立默认push关联:git push --set-upstream origin 远程分支名

修改远程仓库地址:git remote set-url origin URL

将本地仓库和远程仓库进行关联:git remote add origin URL
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: