git与github的使用

一、怎样在github上创建文件夹(或则说把本地项目同步到github)

#配置用户名和邮箱
    1 、 git help git   ---查看帮助文档
    2 、 git config --global user.name "leorunwind"
    3 、 git config --global user.email "[email protected]"
   

#本地库创建

    4、mkdir test_project //创建文件夹

    5、 cd test_project  ---进入到要push到远程库的文件夹,{path}替换为具体的project目录(切换到该文件夹)

    6、 echo “hello,world” > readme.txt 生成简单的文件内容

    7、  git init   ---在当前文件夹创建一个空的git本地库(或则说把本地项目同步到github)

    8、  git add -all   ---将当前目录下的所有文件都添加到git本地库里

    9、 git commit -m 'first commit'   ---提交并加上提交信息
   
#连接远程库并提交
  10、 git remote add origin url  ---连接远程库,回车会让你输入用户名和密码
  11、 git push -u origin master  第一次推送要用-u 以后就不用了
  12、 git pull -u origin master   ---如果上一条push提示failed to ...,用pull回拉从而同步版本

  13、 git push -u origin master   ---push到远程库


二、版本管理

1、版本回退

git reset --hard HEAD^  可以退回到上一个版本(修改了版本库、暂存区、工作)

git reset --hard a223d3              可以推到版本号为a223d3 的版本

git reset --mixed HEAD^  (保留工作区,其它的都修改)

git reset --soft HEAD^      只修改版本库

git log  查看 当前分支的提交历史

2、版本前进

如果在回退以后又想再次回到之前的版本,git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作)

然后在用 git reset --hard 版本号


3、撤销修改

对工作区中文件的修改分为三种情况:

(1)修改,但没有用git add将修改添加到暂存区;

(2)修改,已经使用git add将修改添加到暂存区;

(3)修改,已经使用git add将修改添加到暂存区,并再次进行修改。

对于第一种情况,直接使用git checkout -- 文件,即可撤销修改,撤销修改就回到和版本库一模一样的样子。

第二种情况,先使用git reset HEAD -- 文件,然后在使用git checkout -- 文件进行修改撤销。

第三种情况 先使用git checkout -- 文件,文件就会变成添加到暂存区后的状态,也就转换成了“第二种情况”,然后,在使用情况(2)中的处理方法,即可将文件恢复到与版本库一致的状态。

总之,记住一点:“git checkout -- 文件”命令,撤销的是工作中文件的修改,而“git reset HEAD -- 文件”命令,撤销的是暂存区中文件的修改。


4、删除文件

删除文件也是一种修改,git跟踪的是修改而非文件,因此删除文件可以直接在工作区删除文件,然后用add .再commit即可。对于已经提交过的文件,也可以用git rm newfile.text 直接删除工作区和暂存区的文件,然后在commit


5、比较不同版本同名文件

git diff  filepath 工作区与暂存区比较


三、远程仓库

1、添加远程

通常可以用SSH协议和远程库通信或者使用http协议和远程通信。http协议较为方便,但SSH协议方式速度更快。所以先要让github仓库认证你SSH key,打开Git bash 控制台输入 $ssh-keyen -t rsa -C "your email" 生成秘钥。

#使用SSH地址添加远程库:

$git remote add github url(url是你自己创建库生成的ssh key)如下图

git与github的使用


#也可以使用http地址添加远程库 例如添加码云

$git remote add gitee url(自己在码云上创建项目后的地址)

#查看远程库 $git remote -v

#删除远程库 $git remote remove name(远程库名)


2、推送远程

$git push -u github master 

注释:-u表示指定github为默认远程仓库,后面就可以不加任何参数使用git push了


3、克隆远程

git clone可以将远程仓库克隆至本地某一目录,相当于下载。不指定目录时,会克隆到当前目录下的一个文件夹。通常在github中把感兴趣的别人的项目fork到自己的仓库里,然后在使用clone方法下载到本地进行编辑。

eg:git clone https://hithub.com/lyhue1991/python-basic ../pythoon-basic1

注意:通常使用./表示当前目录, ../表示当前目录的父目录


4、更新远程

fetch能够获取远程仓库的更新,但不同步到本地仓库。fetch获取到的是修改,不会获取文件,而clone会获取文件。可以在fetch之后利用merge,rebase等方法合并并同步到本。

$git fetch github master          //获取远程库的更新

$git status                               //查看远程库的状态

$git merge github/master      //合并分支


5、合并远程

git pull 能够获取远程仓库的更新,并同步到本地。相当于git fetch之后再merge。有时候会有冲突,需要解决

$git pull github master


四、分支协作

1、分支创建

#在当前head位置创建分支develop

$git branch develop

#在某个commit id号位置创建分支feature

git branch feature 83acedg(83acedg为commit id)

#查看分支  git branch

#删除分支 git branch -d 分支名


2、分支切换

使用git checkout develope 可以从当前分支切换到develop分支

使用git checkout -b feature  可以在当前HEAD位置创建新分支feature并将HEAD切换到新分支。

注意:查看分支状况的命令 git log --oneline --graph --all


3、分支的合并

git merge master

注:发生冲突时 打开冲突文件,保留其中一方或者全部保留,在重新add、commit


4、分支重演

git与github的使用


5、储存管理

git与github的使用

   git stash               //存蓄当前工作现场

   git stash pop        //恢复当前储存的场

   git stash sava “”存储的介绍“”          //储存信息,并保存解释

   git stash list              //显示储存过的列表

   git stash apply 0     //指定要恢复的场景

   git stash drop 0       //指定要删除的场景


这些就是我对git使用的一些总结,希望对大家有所帮助,因为第一次写对git和github的用法,如不足之处,望大家提出哟!git与github的使用