远程仓库克隆
在github或者公司内网的git新建一个远程仓库,然后使用clone
命令克隆空的工程到本地工作区
jc@jc:~/Desktop/技术栈/git$ git clone git@github.com:xxxx/gitdemo.git
Cloning into 'gitdemo'...
warning: You appear to have cloned an empty repository.
如上述代码,已经成功从远程仓库克隆了一个空的工程到本地
git工作区操作
git工作区可以理解为本地目录所展示的内容,即实际编码区域。
git工作区查看
接上一节从远端克隆一个空的工程,查看其目录结果
jc@jc:~/Desktop/技术栈/git/gitdemo$ ls -a
. .. .git .idea
jc@jc:~/Desktop/技术栈/git/gitdemo$ cd .git
jc@jc:~/Desktop/技术栈/git/gitdemo/.git$ ls -a
. HEAD config hooks objects
.. branches description info refs
- .git:隐藏文件,git的所有配置文件存放在此,包括配置文件(cofig),branches(分支信息)等
- .idea:python的pycharm工程配置文件
.gitignore文件配置
git使用过程中,部分文件不希望被git识别为改动,因此可以使用.gitignore进行配置,git内部会进行识别,使得忽略指定的文件
官方文档:
https://github.com/github/gitignore/blob/master/Python.gitignore
根据不同的工程,gitignore提供不同模版文件,本文为python脚本,在官网下载Python.gitignore
,使用过程中需要以下几点:
- 文件修改为.gitignore
- .gitignore存在root根目录下,即与
.git
平级
jc@jc:~/Desktop/技术栈/git/gitdemo$ ls -a
. .. .git .gitignore .idea
- 直接编辑.gitignore文件,将忽略的文件名,或者文件夹名加入,如本列中将
.idea/
文件下所有的文件忽略
image.png
git文件状态查看
git status -s
使用如下命令可以查看工作区文件的增删改状态,后面会配合使用git status -s
命令查看不同操作后的文件状态
工作区文件添加
本列在pycharm编译器下进行操作,新建一个demo1.py文件,git status -s
结果如下
- demo1.py状态为A,表示为已经添加到工程区
- gitignore状态为??,表示位置操作,因此可以使用命令
git add .gitignore
将其添加
image.png
工作区文件更新
更新demo1.py文件内容后,查看文件的状态
image.png
- demo1.py状态变为AM,A表示为添加的新文件,M表示为已更新
工作区文件删除
删除git文件,因使用 git rm -f file
git版本库操作
工作区编码完成后,需要将文件进行提交存储在对应的版本库中。版本库使用的命令为git commit -am '描述'
如当前的工作区的文件状态如下:
jc@jc:~/Desktop/技术栈/git/gitdemo$ git status -s
A .gitignore
AM demo1.py
调用commit命令提交到版本库
image.png
- 使用commit命令提交成功后,会输出提交的文件和版本号
- 再次调用stauts命令,缓冲区没有差异代码
git远端推送操作
将版本存入对应的版本库,下一步就需要提交到远程。
-
git push 拉去最新代码后,进行远端的push
image.png
如上图,git push成功
git冲突解决
开发过程中git的基本使用操作如下:
-
1.从远程仓库拉去master分支代码
-
2.本地git一个新的分支如test,分支内容为master
image.png
git branch
: 查看现有分支
git branch test
:新建test分支
-
3.切换到test分支
image.png -
4.test分支上进行代码的修改,并提交
image.png -
5.切换到master分支,并修改demo1.py文件并提交
image.png -
6.demo1.py在master和test分支上存在冲突
#master分支
if __name__ == '__main__':
print('jc001')
#test分支
if __name__ == '__main__':
print('jc001')
-
7.在master分支上merge test分支,由于存在冲突,命令行会如下输出
image.png -
8.冲突解决
如下图,冲突文件
image.png
HEAD:为当前master的代码块
-
test:为当前test分支的代码块
-
删除HEAD的代码,后既可以完成分支的合并
-
1.手动解决冲突代码,解决后demo1.py的状态为
UU
-
2.调用'git add demo1.py' 或者直接提交代码完成合并
image.png
常用的git命令
git clone ssh:xxxx : 从远端仓库克隆代码
git init :初始化本地git工程,执行后会多出个.git的隐藏文件
git status -s :查看git缓冲区的文件状态
git add filename:添加文件到git缓冲区
git rm -rf filename:从git缓冲区输出文件
git branch test:本地创建新的分支test
git branch :查看本地所有分支
git checkout test:切换到test分支
git checkout xxsddda:代码检出xxsdda
git log --oneline --graph:查看git的log信息
git tag -a v1.0 :给git打一个tag
网友评论