安装git

  • git 安装地址: https://git-scm.com/downloads

  • 安装完成后,在桌面右键菜单找到“Git Bash”,点击蹦出一个类似命令行窗口的东西,就说明Git安装成功!

    git

  • 确认安装成功后,还需要最后一步设置,在命令行输入:

    1
    2
    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"

    说明:git config –list 命令可以查看当前Git环境所有配置

注册GitHub及创建远程仓库

  • 注册GitHub: https://github.com

    注册并登录成功之后,进到GitHub主页,在页面右上方用户菜单上选择 “+”->New repository 创建一个新的仓库。

    创建仓库

    给仓库取一个名字,点击创建仓库按钮 你将成功创建一个仓库。

    新建仓库

创建本地仓库

  • 在你自己的电脑合适的地方创建一个目录,进到这个目录,打开 Git Bash 通过 git init 命令把这个目录变成Git可以管理的仓库。

创建本地仓库

将本地仓库和远程库关联

由于你 本地的Git仓库 和 Github仓库 之间的传输是通过 SSH 加密的,所以在关联远程库之前还需要一些设置。

  • 在 Git Bash 中输入以下命令来生成SSH 密钥(把邮箱替换为你的):

    1
    $ ssh-keygen -t ed25519 -C "your_email@example.com"

    然后按照提示完成三次回车,如果创建成功,本地用户主目录下就会有一个 .ssh 文件夹,里面有 id_ed25519id_ed25519.pub 两个文件。id_ed25519 是私钥,不能泄露出去,id_ed25519.pub 是公钥,可以放心地告诉任何人。

    1
    2
    $ ls ~/.ssh
    id_ed25519 id_ed25519.pub

    接下来把你的公钥,也就是 id_ed25519.pub 文件的内容复制到剪贴板,可以通过以下命令:

    1
    $ clip < ~/.ssh/id_ed25519.pub

    点击这里把复制的公钥的内容添加到 Github:

    添加ssh key

  • 接下来就可以把 GitHub仓库 和 本地仓库 关联了

    在本地仓库下打开 Git bash 输入以下命令(把仓库地址替换为你的):

    1
    $ git remote add origin git@github.com:zxyongyo/test.git

    你的仓库地址在这哦

    关联远程仓库

    现在,你就可以把本地仓库的所有内容推送到远程库上了:

    1
    2
    3
    $ git push -u origin master
    Everything up-to-date
    Branch 'master' set up to track remote branch 'master' from 'origin'.

从远程库克隆

克隆(clone)

在实际开发中,大多数时候,我们没有机会从头init仓库,而是远程仓库已经存在,我们要参与到项目中,这时只需要将远程仓库clone下来就好。

1
$ git clone 仓库地址

如果需要 clone 非默认分支,使用 -b 指定分支名:

1
$ git clone -b dev 仓库地址

分支(branch)

通常情况下, 我们自己在协助开发, 需要添加一个新功能的时候, 是不能在主分支上直接修改的, 需要我们自己再创建一个新的分支, 等新功能开发完成后再合并到主分支 。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 新建一个debug分支
$ git branch debug
# 切换到debug分支
$ git switch debug
Switched to branch 'debug'
# 以上两条命令可简写为 git switch -c debug

# 查看分支,当前已经在debug分支上面
$ git branch
* debug
master
# debug解决后,把修改合并到master,并删除debug分支
$ git switch master
$ git merge debug
$ git branch -d debug

拉取别人的提交

在我们完成了某项功能的修改,需要push到远程的时候,其他协作者可能已经提交了他们的修改,这时,我们需要先把最新的提交拉取下来,加入我们的修改,再重新提交上去。

1
2
3
4
5
6
7
8
9
10
11
12
13
$ git push
# push被驳回了,因为有其他人已经提交了更新
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@github.com:JavyZheng/git_demo.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details
# 拉取远程提交内容并合并到当前工作区
$ git pull
# 重新push到远程
$ git push

解决冲突

当拉取协作者的提交时,很可能不同开发者修改了同一个文件的同一部分,这时候,就会出现冲突,我们需要手动解决这些冲突,再重新提交上去。

例如冲突代码如下:

1
2
3
4
5
6
7
function test() {
<<<<<<< HEAD
console.info('This is master branch.');
=======
console.info('This is developOne1 branch.');
>>>>>>> developOne
}

根据需求我们手动将代码改为:

1
2
3
function test() {
console.info('This is master branch.');
}

再提交就没有问题了。