GIT安装

windows版本

下载地址https://git-scm.com/downloads

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(1)

安装很简单,双击安装包一步一步安装;

安装完之后有Git Bash是一个命令行工具,照搬了许多Bash命令,习惯linux的人用起来会感觉比Windows命令提示符更好用。

gitHub

githun是为开发者提供Git仓库的托管服务以及其他一些功能,比如Organization,Issue,Wiki, Pull Request等。

创建账号

设置ssh key

GitHub上连接已有的仓库时的认证,是通过使用SSH的公开密钥认证方式进行的。

我们需要创建公开密钥认证所需的SSH key,并将其添加至github。

创建SSH key:

ssh-keygen -t rsa -C “your_email@example.com”

your_email@example.com和创建账号时输的一样。

生成了id_rsa私有密钥文件和id_rsa.pub公有密钥文件。

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(2)

配置私有密钥

添加密钥到ssh-agent

  1. 启动ssh-agent eval `ssh-agent -s`
  2. 将密钥添加到ssh-agentssh-add ~/.ssh/id_rsa

如果验证连接ssh -T git@your-git-server-domain时,提示“ssh: Could not resolve hostname github.com:bruce-kop/study_examples.git: Name or service not known”

看下ping github.com,如果不通,查下 github.com的ip 140.82.113.4,C:\Windows\System32\drivers\etc 目录下的 hosts 文件,增加一行140.82.113.4 github.com

这样ping github.com就通了。

添加公开密钥:

在下图中new SSH key

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(3)

这样配置完之后就不需要每次push/pull/clone都要输入密码了。

验证连接:

ssh -T git@your-git-server-domain

GIT的使用基本操作初始化仓库 git init
  1. 首先建立一个项目目录
  2. 然后切换到该目录
  3. 使用git init命令初始化仓库

初始化成功,该目录下会生成一个.git的目录。这个目录里面存放这管理当前目录内容所需的仓库数据。

在Git中,我们将这个目录的内容称为“附属于该仓库的工作树”。

windows下:

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(4)

查看仓库状态 git status

git status命令用于显示仓库的状态。

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(5)

On branch main表示当前是主干分支。

No commits yet表示该仓库还没有提交过文件。

其中红色的部分是Untracked files,表示是没有add到暂存区的文件。

需要使用git add命令添加到暂存中,然后调用commit命令提交到仓库。

向暂存区中添加文件git add

要想让文件称为Git仓库的管理对象,就需要使用git add命令将其加入暂存区中。暂存区是提交之前的一个临时区域。

例如:

执行git add test.py命令之后,test.py就称为的待提交的文件了,就不再是Untracked file了。

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(6)

你也可以使用git add .命令将目录下的所有文件全部添加进暂存区。

然后就可以执行提交的命令了。

保存仓库的历史记录git commit

正真提交文件到仓库。

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(7)

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(8)

状态查看显示已经全部提交了。目录下没有更新的文件了。

git commit -m "First commit"

其中-m参数后的"First commit"是提交日志信息,是对提交内容的一个概述。

这个是很简介的,如果向提交更加详细的信息,那么不需要加-m。直接执行 git commit命令。执行后编辑器就会启动,如下,你可以编辑更详细的信息,

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(9)

你的信息可以接着井号之后的那行开始,#表示注释,那些不需要删除。

如果启动编译器之后你想中止提交,请将提交信息留空并直接关闭编辑器,随后提交会被中止。

查看提交后的状态。git status

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(10)

查看提交后的日志git log

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(11)

如果只想显示日志的第一行,那么用git log --pretty=short

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(12)

如果只想显示某个目录或文件的提交日志,可以在log后加目录或文件名。

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(13)

如果想查看提交的改动,使用git log -p re_examples/test21.py

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(14)

退出git log命令,只需要在英文输入法下按键盘上的“q”键即可。

查看更改前后git diff的差别

查看暂存区和当前工作树的差别。

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(15)

如果没有差别,那么什么也没有显示

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(16)

如果要查看暂存区与最新提交的差别,用git diff HEAD.

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(17)

分支操作显示分支一览表git branch

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(18)

创建、切换分支

分支很重要,有了多个分支,你就i可以多个版本并行开发,各自开发完之后在合并到主干。

git checkout -b 分支名称

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(19)

创建完之后当前就已经在pythonExampleBranch分支下工作了。

或者执行两条命令:

git branch 分支名称

git checkout 分支名称

切换会main git checkout main

git checkout - 用-代替分支名表示切换到上一个分支。

分支合并 git merge

如果pythonExampleBranch分支已经实现完毕。

将当前工作分支切换到main。然后执行git merge --no-ff pythonExampleBranch。

然后编辑器会启动,用于录入合并提交的信息,默认信息中已经包含pythonExampleBranch的提交信息,所以不需要更改,保存之后就合并了。

以图表形式查看分支git log --graph

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(20)

更改提交的操作回溯历史版本git reset

git reset --hard 433b809e9da9262036a4374f8cb3e86e4a2ded02

433b809e9da9262036a4374f8cb3e86e4a2ded02是commit的哈希值。

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(21)

git reflog 查看仓库执行过的操作日志

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(22)

消除冲突

合并之后可能会有冲突,那么先解决了然后执行add和commit

修改提交的信息 git commit --amend

如果之前你的提交信息不恰当,想要修改下,就可以使用这个命令。

压缩历史 git rebase -igit commit -am

如果只是一个小改动,可以不需要先add再commit,执行执行下面的命令。

git commit -am “呵呵” 两步合成一步。

更改历史git rebase -i HEAD~2

选定当前分支中包含HEAD在内的两个最新历史记录为对象,并在编辑器中打开。

将两个提交内容合并成一个内容。

推送到远程分支首先注册GitHub账号,创建一个远程仓库添加远程仓库git remote add

git remote add origin git@github.com:bruce-kop/study_examples.git

origin 是远程仓库的标签。

推送分支到远程仓库

git push -u

-u参数可以在推送的同时,将origin 仓库的master分支设置为本地仓库当前分支的upstream(上游)。之后的pull操作就省掉一些参数。

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(23)

这里需要输入github的认证密码,密钥没有配置好,需要输入GitHub的登陆密码。

已经上传了。

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(24)

如果要提交别的分支到仓库,只需要切换下当前分支,然后执行push。

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(25)

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(26)

从远程仓库获取获取远程仓库git clone

切换到另一个目录,然后将gitHub上的仓库clone到本地。

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(27)

默认在main分支下。

git branch -a查看当前分支相关信息

-a可以同时显示本地仓库和远程仓库的分支信息。

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(28)

我们试着将pythonExampleBranch分支获取至本地仓库。

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(29)

获取最新的远程仓库分支git pull

git代码托管平台及github使用(GitHub和Git代码管理和协作开发)(30)

,