git一天学习总结

远程仓库克隆

在github或者公司内网的git新建一个远程仓库,然后使用clone命令克隆空的工程到本地工作区

jc@jc:~/Desktop/技术栈/git$ git clone [email protected]: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结果如下

image.png

  • demo1.py状态为A,表示为已经添加到工程区
  • gitignore状态为??,表示位置操作,因此可以使用命令git add .gitignore将其添加
    image.png

工作区文件更新

更新demo1.py文件内容后,查看文件的状态


image.png
  • demo1.py状态变为AM,A表示为添加的新文件,M表示为已更新

工作区文件删除

删除git文件,因使用 git rm -f file

image.png

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
    git branch : 查看现有分支
    git branch test:新建test分支

    image.png

  • 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

参考资料:

https://www.runoob.com/git/

你可能感兴趣的:(git一天学习总结)