GIt 使用

来源:互联网 发布:手机期货行情软件 编辑:程序博客网 时间:2024/06/05 13:34

其他命令

* git init  在当前路径下初始化创建一个repository* git config --global alias.st status   把status配置成st  --global参数是全局参数, 也就是这些命令在这台电脑的所有Git仓库下都有用。配置文件在C:\Users\username\.gitconfig

工作区和暂存区

- git diff      是工作区(work dict)和暂存区(stage)的比较- git diff --cached     是暂存区(stage)和分支(master)的比较

撤销修改

* 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。* 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

添加文件到Git仓库

- git add +文件名  注意,可反复多次使用,添加多个文件;- git commit -m +"描述"(每次修改,如果不add到暂存区,那就不会加入到commit中)- git status 命令可以让我们时刻掌握仓库当前的状态- git diff +文件名  查看文件做出过哪些修改(需要在git add之前查看)

回退

- git log 查看历史记录   git log --pretty=oneline 把每个记录显示成一行便于查看- git reset --hard HEAD^  HEAD表示当前版本,HEAD^表示上一个,HEAD~100表示向上100个(WIN10 下使用git reset --hard HEAD~)- git reset --hard 66e315f (commit id)- git reflog 查看历史输入记录,进而查到commit id

回退后想再撤回,只需要找到想撤回到的版本使用的commit命令生成的commit id就可以,比如

git reset –hard 66e315f 但是如果关了电脑之前的命令看不到的话,可以使用git reflog查看历史输入记录。Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向append GPL。

删除文件

- git rm + 文件名 删除版本库中的文件。- git checkout -- +文件名  把版本中的文件恢复到工作区

添加远程库

- git remote add origin git@server-name:path/repo-name.git  要关联一个远程库,- git push -u origin master  关联后第一次推送master分支的所有内容;- git push origin master 此后,每次本地提交后,只要有必要,就可以使用命令  git push origin master推送最新修改;

创建删除分支

- 查看分支:   git branch- 创建分支 : git branch +分支名- 切换分支 : git checkout +分支名- 创建+切换分支: git checkout -b+分支名  在本地创建和远程分支 对应的分支,  使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;- 合并某分支到当前分支  : git merge +分支名- 删除分支:   git branch -d +分支名- 强行删除分支 git branch -D +分支名- git merge --no-ff -m "描述" +分支名删除分支后,不会丢掉分支信息,仍然在远程库中保留。  合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

合并冲突

Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
git log –graph –pretty=oneline –abbrev-commit 看到分支的合并情况。。。

Bug分支

当前分支只完成一半不能提交,但是需要马上去另一个分支修复bug,需要使用

-  git stash   当前工作现场“储藏”起来,等以后恢复现场后继续工作-  git stash list  查看储存的工作现场-  git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;-  git stash pop,恢复的同时把stash内容也删了:

多人协作步骤

- 首先,可以试图用git push origin branch-name推送自己的修改;- 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;- 如果合并有冲突,则解决冲突,并在本地提交;- 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream branch-name origin/branch-name。

标签

- git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;- git tag -a <tagname> -m "blablabla..."可以指定标签信息;- git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;- git tag可以查看所有标签。- git push origin <tagname>可以推送一个本地标签;- git push origin --tags可以推送全部未推送过的本地标签;- git tag -d <tagname>可以删除一个本地标签;- git push origin :refs/tags/<tagname>可以删除一个远程标签。

忽略特殊文件

创建 .gitignore文件,并push到github

忽略文件的原则是:

  • 忽略操作系统自动生成的文件,比如缩略图等;
  • 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
  • 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

git add -f App.class如果文件被忽略可以强制添加

git check-ignore命令检查规则

例如:

$ git check-ignore -v App.class

.gitignore:3:*.class App.class

远程主机

* git remote    查看远程库信息 git remote -v 查看更详细的信息* git remote show <主机名>   可以查看该主机的详细信息* git remote add <主机名> <网址>  用于添加远程主机* git remote rm <主机名>  删除远程主机* git remote rename <原主机名> <新主机名>

此笔记在学习廖雪峰Git教程进行的记录。见http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

原创粉丝点击