对于程序员来说,git再熟悉不过了,但是对于很多新手来说,还是不清楚如何自己上传项目到远端然后用另一台电脑继续完成你的项目,或者如何和同事通力合作完成一个项目,如果你有这些问题看完就对了,温馨提示此文章适合小白观看。
快捷施法
git clone 你的仓库地址 //克隆仓库到本地
git clone https://账号:密码@项目地址 //克隆私有项目
举个例子:
git clone https://JohnGreenn:密码@github.com/JohnGreenn/Demo.git
git status //查看状态
git add . //新增内容到暂存区
git add * //git add * 会忽略.gitignore把任何文件都加入
git commit -m "第一次提交" //提交内容到本地
git push origin main (master)//提交内容到线上 简写 git push
git pull origin main(master) //拉取最新代码到本地
git branch newbranch1 // 新建分支
git checkout newbranch1 //切换到此分支
git merge newbranch1 //合并分支
git branch -d newbranch1 //删除本地分支(已合并)
git branch -D newbranch1 //删除本地分支(未合并)
git push origin --delete newbranch1 //删除远程分支
git config user.name //查看用户名
git config --global user.name "xxx" //切换用户
git config --global user.email "[email protected]" //切换邮箱
git remote set-url origin 你的项目地址 //更改地址
git gc //清理不必要的文件并优化本地存储库
报错处理
OpenSSL SSL_read: Connection was reset, errno 10054
OpenSSL SSL_connect: Connection was reset in connection to github.com:443
git config --global http.sslVerify "false"
下面是几个常用的git配置查看命令:glo
git config --global http.proxy #查看git的http代理配置
git config --global https.proxy #查看git的https代理配置
git config --global -l #查看git的所有配置
实战演练
1. 新建仓库
1.在github中新建仓库
2.输入仓库名,勾选“Add a README file”,然后新建仓库。
2. 把仓库clone到本地
在本地新建一个文件夹 右击git bash here 没下载git bash的先百度下载
然后clone你的仓库地址
git clone 你的仓库地址
3. 进入本地仓库,查看状态
ls 查看目录结构
cd git-demo 进入仓库目录
git status 查看状态
4.创建虚拟同事的本地仓库
为了模拟同事,设置一个不一样的文件名。
cd .. //返回上个目录
git clone 你的仓库地址 git-demo-collegue
此时你之前新建的文件下多了一个虚拟同事的目录
到此为止完成了二人合作的架构。
5.自己上传改动的项目
首先回到自己的目录
cd ../git-demo
然后,在README.md 增加自己的内容:
此时git status可以看到 我的修改记录,但是没有上传只是做了修改。
6.把修改的内容添加到暂存区:
git add README.md // 简写:git add .
此时再看状态,它绿了,说明已经添加到暂存区
7. 提交暂存区的内容
git commit -m "我的第一次提交" //这是简便写法 如果直接git commit的话 搜以下vim的基本用法
这时候你就完成了本地的提交
接下来就是上传到线上
8.把本地提交传到远端
git push origin main // 简写git push
- git push origin main指定远程仓库名和分支名(推荐使用)
-
git push 不指定远程仓库名和分支名 是简写
这时候你再去git线上仓库看,发现你的README 已经发生了改变。
9.同事拉取你的最新改动
先切换到你虚拟同事的目录,然后把你刚刚的提交拉到同事的本地。
cd ../git-demo-collegue //切目录
git pull origin main //拉最新的代码到本地
这样同事就拿到了你的代码。
11.建立branch
比如同事拿到了一个新的需求:新增我的个人资料功能,但他又怕影响到主分支,所以他可以新建一个分支,等他做完,再进行合并。
git branch newfunction1 //新建分支
git checkout newfunction1 //切换到此分支
此时同事就切换到了这个新的分支,可以进行新功能的编写了。
10.在新分支新进文件改动
同事在新的分支,新增了一句话。
然后本地提交。
git add README.md
git commit -m "来自同事的第一次提交"
此时同事完成了自己的项目,并进行了本地提交。
11.同时,你也在main上做出了些改动
这时同事还没有把自己刚刚做的东西上传到远端,但你这时候也在做自己的任务,比如你新增了一个txt文档。
cd ../git-demo //先切回自己的目录
git add log.txt //新增了一个文档
git commit -m "我的第二次提交" //本地上传
git push origin main // 推到远端
此时我完成了,我的log.txt 文件从本地上传到线上的操作。
12.同事拉取你的代码
因为同事已经完成了他的任务(新增个人资料),所以在合并项目之前,先看一下我有没有提交新的代码,如果没有先拉的话,就会导致同事的项目和我的项目合并失败,所以每当上传新的项目到线上时,一定要先pull 后push。
cd ../git-demo-collegue //切回同事目录
git checkout main //切到主分支
git pull origin main //拉最新的先线上代码
13.合并
现在,本地main已经是最新的,就可以把newbranch1 合并到main上来了:
git merge newbranch1 //合并分支
git push origin main //上传到远端
此时同事就完成了,本地分支合并并把自己新增的内容上传到线上的git操作。
这时我和同事通力合作的git协作就完成了。
create a new repository on the command line
echo "# TitleX" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/JohnGreenn/TitleX.git
git push -u origin main
push an existing repository from the command line
git remote add origin https://github.com/JohnGreenn/TitleX.git
git branch -M main
git push -u origin main
git ignore
#我用的是这份
#built application files
*.apk
*.ap_
# files for the dex VM
*.dex
# Java class files
*.class
# generated files
bin/
gen/
# Local configuration file (sdk path, etc)
local.properties
# Windows thumbnail db
Thumbs.db
# OSX files
.DS_Store
# Eclipse project files
.classpath
.project
# Android Studio
.idea
#.idea/workspace.xml - remove # and delete .idea if it better suit your needs.
.gradle
build/
# Signing files
.signing/
# User-specific configurations
.idea/libraries/
.idea/workspace.xml
.idea/tasks.xml
.idea/.name
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/encodings.xml
.idea/misc.xml
.idea/modules.xml
.idea/scopes/scope_settings.xml
.idea/vcs.xml
*.iml
/.gradle
/.idea
/build
*/build
/captures
/.cxx
*/.cxx
/.externalNativeBuild
._*
*.iml
.DS_Store
local.properties