赞
踩
新手入坑Git的六大常用场景,包括
Git简介
建立本地Git仓库——连接远程仓库
clone
push
pull
冲突
忽略指定文件的上传
Git是一个软件,这个软件可以用来对我们的版本进行控制,换句话说就是一个同步软件,类似于百度网盘中的同步空间一样,当你在本地对一个项目的某个文件进行修改后,可以通过Git把这次更改操作记录下来(add+commit),如果突然有一天你先回到这次更改操作前,可以直接退回到之前的版本上。
当日Git还可以与远端数据库(比如GitHub等)一起连用,把Git与GitHub连接后,可以在本地写完代码,上传(push)到云端的GitHub仓库中,当然这个在云端的GitHub仓库也是可以被其他人访问的,如果别人想要下载你写的项目,他也可以通过Git克隆(clone)一份到他自己的本地。在随后的多人开发中,每个人都可以把自己修改的内容push到GitHub仓库上,并把别人的修改pull到自己的本地数据库中。
假设项目test_for_git的文件夹有一个sample.txt文件,在此文件夹下右键——Open Git Bash here
在命令行下输入git init
这行命令是将test_for_git所在文件夹变成Git仓库,直观的表现就是在此文件夹下多了一个.git的隐藏文件,当GIt扫描到某个文件夹下有.git文件时,就会认定此文件夹为一个Git仓库。
使用命令行查看当前库的状态
输命令行入
git status
可以查看到当前库中有一个标红文件sample.txt没有被Git添加索引并提交过(一个文件只有被track并commit,Git才会正式记录这次版本更新)。
使用命令行为文件添加track
git add sample.txt
或者
git add .
第一个版本是指定sample.txt添加track,再使用git status
查看文件从红色变成了绿色,第二个版本是将此文件夹下所有发生改变的文件添加track(也就是上面git status
显示的红色文件)。
使用命令行commit
git commit -m "第一次提交"
选项-m
后面跟着这次提交的摘要,为必填项,方便以后自己或者别人可以快速检索。
在GitHub上新建一个仓库用来存放从本地的test_for_git文件夹
在GitHub上新建了一个名叫GitHub_test_git的仓库用来存储test_for_git项目。
这里Add a README file
不要勾选,因为勾选后新建的仓库就不是空仓库,里面会有一个README文件,在后面上传(push)项目的时候会报错。报错的原因参考链接中的第六步。Github——git本地仓库建立与远程连接(最详细清晰版本!附简化步骤与常见错误)_github仓库_你脸上有BUG的博客-CSDN博客
将本地仓库与GitHub仓库连接绑定。
在此步骤之前需要配置shh key,参考链接中的第五步。Github——git本地仓库建立与远程连接(最详细清晰版本!附简化步骤与常见错误)_github仓库_你脸上有BUG的博客-CSDN博客
上述第6步 在GitHub新建完成后可以看到此界面:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gx4XI1ss-1691066299265)(E:\typora_files\git\新建仓库.png)]
找到…or create a new repository on the command line
找到
git remote add origin https://github.com/clarifyC/GitHub_test_git.git
在Git Bash
中输入这段命令,将本地仓库与GitHub仓库连接。
其中https://github.com/clarifyC/GitHub_test_git.git
是GitHub仓库的远程地址,origin
是本地的 Git为这个远程仓库起的别名,下次可以直接使用别名代替这一长串的地址。关于origin
的更多内容参考链接Git 里面的 origin 到底代表啥意思? - 知乎 (zhihu.com)
执行完这句语句后,观察.git文件夹下的config文件,可以发现刚才的配置写入了进来。
将本地内容上传(push)到GitHub仓库上
将本地仓库和GitHub上的远程仓库绑定好后,通过一下命令将本地的代码上传到GitHub上
如果是对GitHub仓库的首次推送
git push -u origin master
之后的推送使用一下命令
git push origin master
其中命令的含义是将本地的代码推送到叫origin
的远程仓库下的master
分支。首次推送为什么要加-u
,随后的推送为什么不要加-u
参考链接git push 的 -u 参数含义_git push-u_Lakers2015的博客-CSDN博客
GitHub仓库发生了变化
如果推送的过程中报错误433,是因为网络原因,多推送几次即可。
命令总结:
git init //将文件夹升级为Git仓库
git add "sample.txt" //为文件sample.txt添加track
git add . //为发生变更的所有文件添加track
git commit -m "提交摘要" //将当前track的文件提交
git remote add origin https://github.com/clarifyC/GitHub_test_git.git //连接远程仓库
git push -u origin master //首次推送
git push origin master //随后使用默认值推送
获取远程仓库的地址。
在本地目标文件夹下右键Open Git Bash here
输入克隆命令
git clone https://github.com/clarifyC/GitHub_test_git.git test_for_git2
解释:git clone 远程仓库地址 克隆到本地的目标文件夹
由于A还没有对远程仓库的内容进行修改,B是在自己克隆后,对远程仓库的首次修改,这不会和别人的提交发生冲突,当然这也是独立开发一个项目常用场景。
分别执行以下命令:
git add .
git commit -m "test_for_git2修改"
git push origin master
距离A上一次push后到开始准备再次开发的期间,A本地的仓库没有发生任何更改,而在GitHub的远程仓库已经被B进行了更改。A想要再次继续开发前,需要将B对远程仓库的更改拉(pull)到自己的本地。
在test_for_git
文件夹下右键——Open Git Bash here
输入以下命令:
git pull origin master
上面的命令表示从名为origin的远程数据库的master分支拉去代码,与当前分支(默认)合并。
命令的完整版本:
git pull <远程主机名> <远程分支名>:<本地分支名>
例如:从名为origin的远程数据库的master分支上拉去代码与本地的localBranch分支合并
git pull origin master:localBranch
如果只写,省略其他参数
git pull
将以文件`.git/log`记录的默认值拉去
A先将自己的修改push到了远程仓库,而B也打算把自己的修改上传远程仓库,但是恰好它们都对同一个文件进行了修改,如果B强行push,则会把A之前的修改给覆盖掉,造成丢失。这就需要B将A的修改先pull到自己的本地,手动对比合并后才能再次push。
test_for_git 的在最后两行添加了111111和222222,并添加track和commit,再让test_for_git1先push
git add .
git commit -m "git1先push"
git push origin master
test_for_git2 的在最后两行添加了3333333和4444444,并添加track和commit
git add .
git commit -m "git1的修改"
如果test_for_git2要push的话,会报错
test_for_git2将远程仓库的修改pull到本地,进行手动合并
手动合并完成后,进行添加track并commit,再可以成功push
git add .
git commit -m "手动合并"
git push
在根目录下(一般与.git
同级)新建一个.gitignore
文件,在文件中输入以下配置:
/data/ // 忽略这个data目录
log/* // 忽略log下的所有文件
css/*.css // 忽略css目录下的.css文件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。