前期准备
- 安装Git
- 准备仓库
准备仓库
准备仓库的方式有2种,在Github上Create
自己的仓库或Fork
他人已有的仓库
Create仓库
- 打开Github,点击左侧
New
新建仓库; - 输入相关信息,点击
Create repository
创建。
Fork仓库
- 打开目标仓库。如:test仓库
- 点击右上角的
Fork
按钮,将项目复制到个人帐号下。
克隆仓库
克隆仓库的方式也有2种,分别是HTTPS
和SSH
HTTPS
- 进入到本地仓库目录,右键打开
Git Bash
- 进入Github个人仓库,点击
Clone or download
,复制仓库地址 Clone个人仓库到本地
$ git clone https://github.com/账号名/test.git
进入仓库
$ cd test
将改动文件添加到缓存区
$ git add . # 添加全部改动文件到缓存区 $ git add <file_name> # 将指定文件添加到缓存区 $ git rm --cached <file_name> # 将指定文件移除缓存区 $ git status # 查看状态 # Untracked files->即某个文件还没有被跟踪,还没有提交到git仓库里 # Changes to be committed -> 文件等待被提交
填写提交记录
$ git commit -m "注释" # 将缓存区的提交至仓库,提交一次后再git status会看到nothing to commit
提交代码
$ git push # 提交代码,按提示输出github账号密码
若第一次提交时出现错误提示,则需配置全局账号密码及邮箱地址,然后重新提交。
$ git config --global user.name '账号' $ git config --global user.password '密码' $ git config --global user.email '邮箱地址'
- 此时,在Github上的个人仓库刷新即可新提交的文件。
注:使用HTTPS方式时,每次提交都需要输入账号密码,但通过修改配置文件可直接提交。打开仓库目录下
.git/config
,修改url
。注意.git
目录为隐藏目录,需设置显示隐藏的目录。# url = https://github.com/账号/test.git url = https://账号:密码@github.com/fengkkk/test.git
SSH
- 进入到本地仓库目录,右键打开
Git Bash
- 进入Github个人仓库,点击
Clone or download
,复制仓库地址 Clone个人仓库到本地
$ git clone git@github.com:账号名/test.git
进入仓库
$ cd test
生成SSH Key
$ ssh-keygen -t rsa # Generating public/private rsa key pair. # Enter file in which to save the key (/c/Users/Feng/.ssh/id_rsa): # 直接回车,括号内为你的SSH Key密钥文件存放路径 # 备注: # 指定rsa算法生成密钥,生成两个文件:公钥id_rsa.pub和密钥id_rsa # Linux/Mac 系统 ~/.ssh # win系统 C:\Users\username\.ssh
- 打开SSH Key存放路径(如
/c/Users/Feng/.ssh/
),并使用文本编辑器打开公钥文件id_rsa.pub
,复制全部内容。 - 打开
Github>设置
页面,点击左侧SSH and GPG keys
,再点击New SSH key
。随便填写Title,然后将公钥文件内容粘贴进入Key。 SSH key添加成功后,一般会有邮件提醒,另外也可以测试一下。添加完SSH Key后即可按照正常流程提交代码,无需输入密码。
$ ssh -T git@github.com # Hi fengkkk! You've successfully authenticated, but GitHub does not provide shell access.
将改动文件添加到缓存区
$ git add . # 添加全部改动文件到缓存区 $ git add <file_name> # 将指定文件添加到缓存区 $ git rm --cached <file_name> # 将指定文件移除缓存区 $ git status # 查看状态 # Untracked files->即某个文件还没有被跟踪,还没有提交到git仓库里 # Changes to be committed -> 文件等待被提交
填写提交记录
$ git commit -m "注释" # 将缓存区的提交至仓库,提交一次后再git status会看到nothing to commit
提交代码
$ git push # 提交代码,按提示输出github账号密码
Git常用指令
$ git init # git初始化
$ git status # 查看状态
# Untracked files->即某个文件还没有被跟踪,还没有提交到git仓库里
# Changes to be committed -> 文件等待被提交
$ git add # 添加到缓存区
$ git rm --cached # 移除缓存
$ git commit -m "注释" # 将缓存区的提交至仓库,提交一次后再git status会看到nothing to commit
$ git log # 查看所有产生的commit记录
$ git add & git commit # 直接提交
$ git branch # 提交到分支
$ git checkout test2 # 切换到分支test2
$ git checkout -b test2 # 新建一个test2分支,并且自动切换该分支
$ git merge test2 # 将test2分支合并进当前分支
# 有些时候可能会删除失败,比如test2分支的代码还没有合并到master,-d是删除不了的。
# 但如果非要删除,那就执行-D强制删除
$ git branch -d test2 # 删除分支test2
$ git branch -D test2 # 强制删除分支test2
$ git tag v1.0 #在当前代码状态下新建了一个标签v1.0
$ git pull origin master # 把远程最新的代码更新到本地
$ git push origin master # 把本地代码推到远程master分支
# 一般先pull再push,这样不容易冲突。
提交项目给原作者
- 先Fork项目到自己仓库;
git clone
自己仓库中刚Fork的项目本地修改,然后将本地项目提交到自己的仓库
$ git add -A # 添加全部 $ git commit -m '更新日志' $ git push # 提交到服务器
- 然后在仓库
Pull request
中可以看到自己的提交; - 最后点击
Create pull request
,填写注释后提交,等待作者确认即可。
Q&A
git add .
的时候遇到warning: LF will be replaced by CRLF in .....
# warning: LF will be replaced by CRLF in ...... # The file will have its original line endings in your working directory. # 原因: 路径中存在 / 的符号转义问题,false就是不转换符号默认是true,相当于把路径的 / 符号进行转义,这样添加的时候就有问题 $ git config --global core.autocrlf false
修改全局配置
$ git config --global user.name 'name' $ git config --global user.password 'password' $ git config --list
其它
版权属于:Naraku
本文链接:https://www.naraku.cn/posts/9.html
本站所有原创文章均采用 知识共享署名-非商业-禁止演绎4.0国际许可证 。如需转载请务必注明出处并保留原文链接,谢谢~