<form id="htvdb"></form>

            <form id="htvdb"><nobr id="htvdb"></nobr></form>

              <address id="htvdb"></address>

              <form id="htvdb"><form id="htvdb"><nobr id="htvdb"></nobr></form></form>
              <form id="htvdb"></form>


                    GIT教程-记录自己学习GIT

                    分享 :
                    标签: git

                    本地git bash远程github

                    创建 SSH Key

                    $ ssh-keygen -t rsa -C "这里输入github注册邮箱号"

                    一路回车,使用默认值即可

                    登陆GitHub,打开“Settings”->“SSH and GPG Keys”,“New SSH Key”操作

                    Title任意,在Key文本框里复制id_rsa.pub文件里的内容。注:id_rsa.pub文件的内容默认是在本地电脑?/c/users/用户名/.ssh/id_rsa.pub?中,用记事本打开。

                    点“Add SSH Key”,你就应该看到已经添加的Key

                    验证是否成功,在git bash中输入:

                    $ ssh -t [email protected] // 回车后shell access 这就表示已成功连上github

                    如果出现以下错误解决

                    错误提示一:ssh_exchange_identification: read: Connection reset by peer // SSH使用HTTP代理来登录服务器

                    错误提示二:PTY allocation request failed on channel 0 // 把小写t 改为大写T 即可:$ ssh -T [email protected]

                    第一次使用需要设置用户名和email

                    $ git config --global user.name "这里输入github用户名"

                    $ git config --global user.email "这里输入github注册邮箱号"


                    本地项目上传github

                    $ cd e:/web

                    $ git init

                    $ git add --all

                    $ git commit -m "更新说明"

                    $ git remote add origin https://github.com/xxx.git // 可能会提示输入github用户名更密码

                    $ git push -u origin master


                    github版本库中添加文件

                    $ cd e:/web // 针对哪个项目库操作就要先进入这个项目的目录

                    $ git add test.txt // git暂存库中添加 test.txt文件

                    $ git commit -m "add test.txt" // 把暂存区的所有内容提交到当前分支(master分支),冒号里备注说明添加了test.txt 文件

                    $ git push origin master // 推送数据到github远程库的master分支上

                    如果想省掉提交之前的 git add 命令,可以直接用

                    $ git commit -a -m 'add test.txt'

                    commit和commit -a的区别, commit -a相当于:

                    • 第一步:自动地add所有改动的代码,使得所有的开发代码都列于index file中
                    • 第二步:自动地删除那些在index file中但不在工作树中的文件
                    • 第三步:执行commit命令来提交

                    git查看本地master库中更新数据

                    解释一下:我们把文件file.txt第一次的修改已经git add 添加到缓存区并git commit 到了master分支中,现在我们在文件上又进行了修改,保存后可以用git diff HEAD -- file查看修改内容,其中:-- 表示当前分支,不能少

                    $ git diff HEAD -- file.txt

                    还可以使用cat filt简要查看

                    $ cat filt.txt


                    git修改撤销命令

                    我们分几种情况下来说明撤销命令

                    第一种:当你修改file.txt文件,保存后关电脑出去吃个饭,在吃饭的时候突然想到修改错了,现在回去删除掉,庆幸的是没有git add 到暂存区,可以自己手动在文件里删除,也可以用git checkout命令撤销

                    $ git checkout -- file.txt //说明:-- 表示当前分支,必须加上

                    第二种:还是上面例子,如果你操作git add命令放入暂存盘,但是没有git commit放入到master分支中,可以使用git reset HEAD file命令

                    git reset HEAD file.txt

                    这是后你再git status查看状态

                    $ git status On branch master nothing to commit, working tree clean

                    然后我们再来用命令cat file看下是否复原了

                    $ cat file.txt

                    嘿嘿,结果复原了。高兴

                    第三种:还是上面的例子,如果git commit 到了master分支了,这个时候就需要用git reset --hard commit_id 命令历史版本撤回了

                    $ git reset --hard 4c7776c


                    git历史版本回退(git后悔药)

                    先查看下历史记录 git log

                    $ git log

                    commit 4c7776c1c869c14d1015ad42de6478d52addxxxx Author: unknown [email protected] Date: Mon Mar 20 23:06:47 2017 +0800

                    add html

                    现在我们开始回退,命令:git reset --hard commit_id ,这里提到的commit id 指的是:commit 4c7776c1c869c14d1015ad42de6478d52addxxxx 这一大串数字

                    $ git reset --hard 4c7776c

                    回退到add html 版本时,再想恢复到更早版本,就必须找到对应版本的commit id。Git提供了一个命令git reflog用来记录你的每一次命令

                    $ git reflog

                    接下来就根据commit id 回退吧

                    $ git reset --hard 4c7776c


                    本地库手动删除库中某个文件

                    可以直接右键删除即可,也可在本地项目库web右键打开git bash用命令操作,具体如下

                    $ rm test.txt // 删除库中 test.txt文件

                    $ git status -s // 查询状态,库中哪些文件被删除了

                    删除文件夹命令

                    >$ rm -rf Web-xie //加个 -rf

                    当出现以下错误提示解决办法

                    $ git status -s

                    fatal: Not a git repository (or any of the parent directories): .git // 说明没有进入相应的分支目录


                    github版本库及本地库中删除某个文件

                    选择本地项目库web右键打开git bash,在里面输入命令,具体如下:

                    $ git rm test.txt

                    $ git commit -m "remove test.txt"

                    $ git push


                    github版本库中删除某个文件(本地库保留)--cached命令

                    选择本地项目库web右键打开git bash,在里面输入命令,具体如下:

                    $ git rm -r --cached test.txt

                    $ git commit -m "remove test.txt"

                    $ git push


                    从现有远程仓库克隆到本地库

                    $ git clone git://github.com/xxx.git


                    git fetch 从远程获取最新版本到本地

                    方法一: 简单粗暴,可能不安全

                    从远程获取最新版本到本地

                    $ git fetch origin master

                    git fetch origin master 这句的意思是:从远程的origin仓库的master分支下载代码到本地的origin master。

                    把远程下载下来的代码合并到本地仓库,远程的和本地的合并

                    $ git merge origin/master

                    方法二:好理解,相对方法一安全

                    $ git fetch origin master:temp

                    这句命令的意思是:从远程的origin仓库的master分支下载到本地并新建一个分支temp

                    可以先比较本地的仓库和远程参考的区别

                    $ git diff temp

                    合并temp分支到master分支

                    $ git merge temp

                    如果不想要temp分支了,可以删除此分支

                    $ git branch -d temp


                    git pull拉取远程分支更新数据合并本地库

                    git pullgit fetch简单直接,但是没有git fetch更新安全,拉取操作,如下:

                    $ git pull


                    git pull 强制覆盖本地文件

                    简单粗暴的命令,分三步

                    第一步

                    $ git fetch --all

                    第二步

                    $ git reset --hard origin/master

                    第三步

                    $ git pull


                    git 创建版本库

                    版本库又名仓库,在本地电脑里叫做文件夹,这个文件夹可以被git跟踪。操作命名是:mkdir

                    $ mkdir demo

                    这样就创建好了demo 仓库,用cd demo 进入这个仓库

                    $ cd demo

                    可以用pwd来查看具体仓库(文件)路径

                    $pwd

                    /e/git-learni/demo


                    git中遇到的一些错误解决办法

                    第一种错误:

                    遇到过的一些错误提示:

                    Git – fatal: Unable to create ‘/web/.git/index.lock’: File exists.

                    If no other git process is currently running, this probably means a

                    git process crashed in this repository earlier. Make sure no other git

                    process is running and remove the file manually to continue.

                    可以试着删除 index.lock,git bash 命令操作如下:

                    $ rm -f ./.git/index.lock


                    第二种错误提示:

                    提示:error: failed to push some refs to '

                    当要push代码到git时,出现提示:

                    error:failed to push some refs to ...Dealing with “non-fast-forward” errorsFrom time to time you may encounter this error while pushing:$ git push origin master?To ../remote/??! [rejected]??????? master -> master (non-fast forward)?error: failed to push some refs to '../remote/'?To prevent you from losing history, non-fast-forward updates were rejectedMerge the remote changes before pushing again.? See the 'non-fast forward'section of 'git push --help' for details.

                    问题(Non-fast-forward)的出现原因在于:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。于是你有2个选择方式:

                    第一种:

                    强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容

                    git push -f origin master

                    第二种:

                    先把git的东西fetch到你本地然后merge后再push

                    $ git fetch origin master

                    $ git merge origin/master

                    这2句命令等价于

                    $ git pull?

                    可是,这时候又出现了如下的问题:

                    上面出现的?[branch "master"]是需要明确(.git/config)如下的内容

                    这等于告诉git2件事:

                    第一件事:当你处于master branch,?默认的remote就是origin。

                    第二件事:当你在master branch上使用git pull时,没有指定remote和branch,那么git就会采用默认的remote(也就是origin)来merge在master branch上所有的改变

                    如果不想或者不会编辑config文件的话,可以在bush上输入如下命令行:

                    $ git config branch.master.remote origin?

                    $ git config branch.master.merge refs/heads/master?

                    之后再重新git pull下。最后git push你的代码吧。


                    第三种错误:

                    如果是git push ,没有加全 git push origin master 出现以下错误

                    $ git push

                    fatal: You are not currently on a branch. To push the history leading to the current (detached HEAD) state now, use

                    git push origin HEAD:<name-of-remote-branch>

                    继续 git status 查看状态,出现以下提示情况

                    $ git status

                    rebase in progress; onto dbad060 You are currently rebasing branch 'master' on 'dbad060'. (all conflicts fixed: run "git rebase --continue")

                    接下来回滚最近更新 git rebase --continue (注意:本地库需要备份一下,下一步会跟本地库合并。以免本地更新丢失

                    $ git rebase --continue Applying: add web03 No changes - did you forget to use 'git add'? If there is nothing left to stage, chances are that something else already introduced the same changes; you might want to skip this patch.

                    When you have resolved this problem, run "git rebase --continue". If you prefer to skip this patch, run "git rebase --skip" instead. To check out the original branch and stop rebasing, run "git rebase --abort".

                    再输入 git rebase --abort 本地合并回滚数据

                    $ git status On branch master Your branch is up-to-date with 'origin/master'.

                    最后把备份的文件拷贝更新回来就可以了,开始push吧,注:需要写全 git push origin master

                    文章分类

                    北京赛车玩法和赔率|官网_首页