From 70b528419c8427da4a7759bcf4185d7ffa7b751c Mon Sep 17 00:00:00 2001 From: Tomasz Komoszeski Date: Fri, 16 Feb 2024 14:57:04 +0100 Subject: [PATCH] projects new tags --- _i18n/en.yml | 3 + .../2022-07-17-how-to-start-with-git.md | 318 ++++----- ...base-merge-conflicts-with-GitExtensions.md | 274 ++++---- ...-to-store-big-binary-files-with-git-lfs.md | 646 +++++++++--------- _i18n/pl.yml | 3 + .../2022-07-17-how-to-start-with-git.md | 310 ++++----- ...base-merge-conflicts-with-GitExtensions.md | 268 ++++---- ...-to-store-big-binary-files-with-git-lfs.md | 626 ++++++++--------- _pages/projects.md | 2 +- _projects/1_project.md | 2 +- _projects/2_project.md | 3 +- _projects/3_project.md | 2 +- _projects/4_project.md | 2 +- _projects/5_project.md | 2 +- _projects/6_project.md | 2 +- 15 files changed, 1234 insertions(+), 1229 deletions(-) diff --git a/_i18n/en.yml b/_i18n/en.yml index 033ed26f..663e31eb 100644 --- a/_i18n/en.yml +++ b/_i18n/en.yml @@ -101,6 +101,9 @@ projects: categories: fun: fun work: work + game-dev: game-dev + web-development: web-development + desktop: desktop repositories: users: GitHub Users repos: GitHub Repositories diff --git a/_i18n/en/_posts/2022-07-17-how-to-start-with-git.md b/_i18n/en/_posts/2022-07-17-how-to-start-with-git.md index ca193ea8..3e3bb3ed 100644 --- a/_i18n/en/_posts/2022-07-17-how-to-start-with-git.md +++ b/_i18n/en/_posts/2022-07-17-how-to-start-with-git.md @@ -1,159 +1,159 @@ ---- -layout: post -title: How to start with GIT? -date: 2022-07-17 16:40:16 -tags: git gitExtensions -categories: tutorials ---- - - -I was wondering what GIT means. Here is what I have found: - -> GIT as a word is an alternation of the word get, which was shortened from begetting. -> The implicit reference is to illegitimate offspring, -> and the term is roughly synonymous with a twit, dolt, moron, or idiot. Within the open source community, the significance of the name choice varies. - -It means GIT is for idiots that do not know what they are doing. The perfect tool for a software developer. Let us start from the beginning. - -Linus Torvalds decided to develop it for the Linux kernel. From 2005 that helped developers track changes in the code. Available in all operating systems and used by users around the globe. Easy to start but hard to master version control system. You can download it from [this site](https://git-scm.com/downloads) and try it by yourself. - -# Basics - -Download and install [git](https://git-scm.com/downloads) on your OS (Operating system). -I am starting with the basics. To follow, you need to get familiar with terminal. -After installation you should be able to execute some git commands. -Create a new folder. Then open up a terminal within new folder. -Let’s make a repository. To achieve it use a command bellow. - -```bash -git init -``` - -# Tools - -There a few GUI (Graphical User Interface) Tools, which can help you geting into GIT. -If you are not a fan of terminal I bet you can use [GitExtensions](https://gitextensions.github.io/) - -
- {% include figure.liquid path="assets/img/posts/gitextension.png" alt="git extensions editor window" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -As an alternative you can use [SourceTree](https://www.sourcetreeapp.com/) it is a valid free to use alternative for Mac. I think if you are using Linux you can go with terminal as well. - - -![SourceTree!](https://wac-cdn.atlassian.com/dam/jcr:580c367b-c240-453d-aa18-c7ced44324f9/hero-mac-screenshot.png?cdnVersion=651) - - -# Commit -Okay, so far good! Now let’s commit some files to it. I made an HTML file with the following content. - -```html -

Hello there

-``` - -and save it as hello.html. Now you are ready to add it to staging area. -What is a staging area – let’s explain it as a box where you put stuff and then you use it as a snapshot to commit the changes. -To do it you should specify the path to the file with the file format, or path with some pattern like - -```bash -.txt .xml, etc. -``` - -Command for adding the hello.html in terminal - -```bash -git add hello.html -``` - -You can also add all files - -```bash -git add * -``` - -Then by typing: - -``` -git status -``` - -You should be able to see all files, which have been added by you to staging area. - -Afterwards, you can commit the hello.html to your local repository. - -```bash -git commit -m "Add hello there file" -``` - -commit – is a command that saves a snapshot of the “box” that we staged. - -# Commits message standards - -I want to explain a few standards on how to deal with commit messages and how often you should be doing it. I heard that the more often you are doing it, the better. There is no limit, afterwards, you can always reduce the number of commits, by using the squash functionality. Let’s start with the form of the commit message. How it should be: - - -- Use imperative statements in the subject line, e.g. “Fix broken Javadoc link” - -- Begin the subject line sentence with a capitalized verb, e.g. “Add, Prune, Fix, Introduce, Avoid, etc” - -- Do not end the subject line with a period - -- Keep the subject line to 50 characters or less if possible - -- Wrap lines in the body at 72 characters or less - -- Mention associated Jira issue(s) at the end of the commit comment, prefixed with “Issue: ” as above - -- In the body of the commit message, explain how things worked before this commit, what has changed, and how things work now - -- I also like to add some kind of tag of type before the commit message, here are some examples: - -```bash -– Feature - -– Bugfix - -– Cleanup - -– Hotfix -``` - -When you are working on a task it is good to add some number of tasks like #123 that reference some. In summary, it should look like that: - -```bash -[FEATURE] #123 My super not quite long commit message. - - -Here goes body messages where we describe what is going on. -Keep it short as much as you can, but include all necessary details -inside. - -Footer where summary and all other references should be applied for -example: -Those commits resolve issue #123 and #124 -``` - - -Git branches – tree of changes -Commits can be added to branches. The branch is a set of commits that are separated from the main branch just like in a tree with leafs. To create a branch: - -```bash -git branch -``` - -To switch branch - -``` -git checkout -``` - -After initializing the git repository you usually have one existing main branch from which all created afterwards branches can be derived. Use them to group some changes on the feature you are working on. - -# Workflow - -I recommend getting familiar with a few concepts of GIT like a branch, rebase, merge and squash. After that, you can start thinking about how to work and manage your work as a software developer. I am a big fan of normalization and standards of workflows. I found a few methodologies that are popular nowadays while working with GIT. - -- Gitflow -- Trunk - -Choose first if you do not have any CI/CD tools in your toolset. The second one is great while working with a good technology stack and integrated code review tools. +--- +layout: post +title: How to start with GIT? +date: 2022-07-17 16:40:16 +tags: git gitExtensions +categories: tutorials +--- + + +I was wondering what GIT means. Here is what I have found: + +> GIT as a word is an alternation of the word get, which was shortened from begetting. +> The implicit reference is to illegitimate offspring, +> and the term is roughly synonymous with a twit, dolt, moron, or idiot. Within the open source community, the significance of the name choice varies. + +It means GIT is for idiots that do not know what they are doing. The perfect tool for a software developer. Let us start from the beginning. + +Linus Torvalds decided to develop it for the Linux kernel. From 2005 that helped developers track changes in the code. Available in all operating systems and used by users around the globe. Easy to start but hard to master version control system. You can download it from [this site](https://git-scm.com/downloads) and try it by yourself. + +# Basics + +Download and install [git](https://git-scm.com/downloads) on your OS (Operating system). +I am starting with the basics. To follow, you need to get familiar with terminal. +After installation you should be able to execute some git commands. +Create a new folder. Then open up a terminal within new folder. +Let’s make a repository. To achieve it use a command bellow. + +```bash +git init +``` + +# Tools + +There a few GUI (Graphical User Interface) Tools, which can help you geting into GIT. +If you are not a fan of terminal I bet you can use [GitExtensions](https://gitextensions.github.io/) + +
+ {% include figure.liquid path="assets/img/posts/gitextension.png" alt="git extensions editor window" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +As an alternative you can use [SourceTree](https://www.sourcetreeapp.com/) it is a valid free to use alternative for Mac. I think if you are using Linux you can go with terminal as well. + + +![SourceTree!](https://wac-cdn.atlassian.com/dam/jcr:580c367b-c240-453d-aa18-c7ced44324f9/hero-mac-screenshot.png?cdnVersion=651) + + +# Commit +Okay, so far good! Now let’s commit some files to it. I made an HTML file with the following content. + +```html +

Hello there

+``` + +and save it as hello.html. Now you are ready to add it to staging area. +What is a staging area – let’s explain it as a box where you put stuff and then you use it as a snapshot to commit the changes. +To do it you should specify the path to the file with the file format, or path with some pattern like + +```bash +.txt .xml, etc. +``` + +Command for adding the hello.html in terminal + +```bash +git add hello.html +``` + +You can also add all files + +```bash +git add * +``` + +Then by typing: + +``` +git status +``` + +You should be able to see all files, which have been added by you to staging area. + +Afterwards, you can commit the hello.html to your local repository. + +```bash +git commit -m "Add hello there file" +``` + +commit – is a command that saves a snapshot of the “box” that we staged. + +# Commits message standards + +I want to explain a few standards on how to deal with commit messages and how often you should be doing it. I heard that the more often you are doing it, the better. There is no limit, afterwards, you can always reduce the number of commits, by using the squash functionality. Let’s start with the form of the commit message. How it should be: + + +- Use imperative statements in the subject line, e.g. “Fix broken Javadoc link” + +- Begin the subject line sentence with a capitalized verb, e.g. “Add, Prune, Fix, Introduce, Avoid, etc” + +- Do not end the subject line with a period + +- Keep the subject line to 50 characters or less if possible + +- Wrap lines in the body at 72 characters or less + +- Mention associated Jira issue(s) at the end of the commit comment, prefixed with “Issue: ” as above + +- In the body of the commit message, explain how things worked before this commit, what has changed, and how things work now + +- I also like to add some kind of tag of type before the commit message, here are some examples: + +```bash +– Feature + +– Bugfix + +– Cleanup + +– Hotfix +``` + +When you are working on a task it is good to add some number of tasks like #123 that reference some. In summary, it should look like that: + +```bash +[FEATURE] #123 My super not quite long commit message. + + +Here goes body messages where we describe what is going on. +Keep it short as much as you can, but include all necessary details +inside. + +Footer where summary and all other references should be applied for +example: +Those commits resolve issue #123 and #124 +``` + + +Git branches – tree of changes +Commits can be added to branches. The branch is a set of commits that are separated from the main branch just like in a tree with leafs. To create a branch: + +```bash +git branch +``` + +To switch branch + +``` +git checkout +``` + +After initializing the git repository you usually have one existing main branch from which all created afterwards branches can be derived. Use them to group some changes on the feature you are working on. + +# Workflow + +I recommend getting familiar with a few concepts of GIT like a branch, rebase, merge and squash. After that, you can start thinking about how to work and manage your work as a software developer. I am a big fan of normalization and standards of workflows. I found a few methodologies that are popular nowadays while working with GIT. + +- Gitflow +- Trunk + +Choose first if you do not have any CI/CD tools in your toolset. The second one is great while working with a good technology stack and integrated code review tools. diff --git a/_i18n/en/_posts/2022-08-06-how-to-solve-rebase-merge-conflicts-with-GitExtensions.md b/_i18n/en/_posts/2022-08-06-how-to-solve-rebase-merge-conflicts-with-GitExtensions.md index 83f842ca..e2772948 100644 --- a/_i18n/en/_posts/2022-08-06-how-to-solve-rebase-merge-conflicts-with-GitExtensions.md +++ b/_i18n/en/_posts/2022-08-06-how-to-solve-rebase-merge-conflicts-with-GitExtensions.md @@ -1,137 +1,137 @@ ---- -layout: post -title: How to solve rebase and merge conflicts with GitExtensions? -date: 2022-08-06 16:40:16 -tags: git gitExtensions -categories: tutorials ---- - - -Have you ever wondered how to merge your changes easily without destroying the entire project? -So here is a quick and easy guide to follow. Let’s start! -First, you should install and configure [GitExtensions](https://git-extensions-documentation.readthedocs.io/). After that open up your repository. In my case, it contains two branches: master and develop. Check the image below to see it. - -
-
- {% include figure.liquid path="assets/img/posts/gitExtensions_1.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- {% include figure.liquid path="assets/img/posts/gitExtensions_2.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- - -It contains on hello.html file with the same line edited so it does not know which line it should take when [conflict](https://www.atlassian.com/git/tutorials/using-branches/merge-conflicts) happens. - -## How to rebase? - -Do [rebase](https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase) from develop branch to master, so our commit on develop will be “above” commits from master and it “should” contain all commits from the master branch too. How do I do it? -Checkout on develop branch. Click the right mouse button on it. Choose checkout branch and then develop. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_3.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -When you are on develop branch choose which commit would like to rebase. In my case, it is a master branch commit with the message “Hope it will work”. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_4.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -After clicking, yes to rebase it, you should see an error pop up, do not worry it is nothing wrong with git. It is just information for you that you need to resolve some conflicts. - - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_5.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Click, ok, and procceed. Next, you should see a similar window below: - - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_6.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Choose solve conflicts and then the next window should pop up. - - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_7.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -It is a resolve merge conflicts window. You can solve your merge conflicts in two ways. The fast and easy second way for which you use a diff tool like [kdiff3](https://github.com/KDE/kdiff3). - -## Fast/easy way to resolve merge conflicts. - -You can apply the changes for the hello.html file by dropping your changes and using the changes of the master. Click the right mouse button on the hello.html file and choose (theirs) just like on the image below. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_8.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -If you would like to overwrite the change you can always use choose (ours) option. Afterward -Click continue rebase on the main rebase window - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_9.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -In case of more files or conflicts, you would have to resolve them later. Keep in mind that working with bigger files or changes could take some time. - -## Diff tool way - -Here I modified a little history of the repository so we can work with something. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_10.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- - -Let’s rebase again and develop to a master branch. - -1. Checkout to develop - -2. Choose the first master commit with the message “Some other changes”, and click the right mouse button on it - -3. Rebase current branch on -> selected commit. - -Then the magic begins. I omit the steps to merge conflicts window, which is the same as above. Chose to open it up in kdiff3 or another merging/diff tool. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_11.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -You should see a window similar to below: - - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_12.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Three directory-merge - -- (“A” is treated as the older base of both). - -- B – is a (theirs) master branch version - -- C – is a (ours) in that case, develop branch version - -Below is the Output window that will contain the merging result. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_13.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -You can choose whatever version of the file you would like and combine them in the output you can see I have chosen one line from C, one line from A, and one line from B. -Then I saved the file and continue to rebase after solving the conflicts. Simply as that, but sometimes it can be tricky so pay attention. -Result of rebasing: - - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_14.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -It will create .orig file extensions so you can always see the history of your changes. -It is better to not commit those files to your repository. - -That’s it! I hope the article will help you with resolving the conflicts! +--- +layout: post +title: How to solve rebase and merge conflicts with GitExtensions? +date: 2022-08-06 16:40:16 +tags: git gitExtensions +categories: tutorials +--- + + +Have you ever wondered how to merge your changes easily without destroying the entire project? +So here is a quick and easy guide to follow. Let’s start! +First, you should install and configure [GitExtensions](https://git-extensions-documentation.readthedocs.io/). After that open up your repository. In my case, it contains two branches: master and develop. Check the image below to see it. + +
+
+ {% include figure.liquid path="assets/img/posts/gitExtensions_1.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ {% include figure.liquid path="assets/img/posts/gitExtensions_2.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ + +It contains on hello.html file with the same line edited so it does not know which line it should take when [conflict](https://www.atlassian.com/git/tutorials/using-branches/merge-conflicts) happens. + +## How to rebase? + +Do [rebase](https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase) from develop branch to master, so our commit on develop will be “above” commits from master and it “should” contain all commits from the master branch too. How do I do it? +Checkout on develop branch. Click the right mouse button on it. Choose checkout branch and then develop. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_3.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +When you are on develop branch choose which commit would like to rebase. In my case, it is a master branch commit with the message “Hope it will work”. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_4.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +After clicking, yes to rebase it, you should see an error pop up, do not worry it is nothing wrong with git. It is just information for you that you need to resolve some conflicts. + + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_5.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Click, ok, and procceed. Next, you should see a similar window below: + + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_6.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Choose solve conflicts and then the next window should pop up. + + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_7.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +It is a resolve merge conflicts window. You can solve your merge conflicts in two ways. The fast and easy second way for which you use a diff tool like [kdiff3](https://github.com/KDE/kdiff3). + +## Fast/easy way to resolve merge conflicts. + +You can apply the changes for the hello.html file by dropping your changes and using the changes of the master. Click the right mouse button on the hello.html file and choose (theirs) just like on the image below. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_8.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +If you would like to overwrite the change you can always use choose (ours) option. Afterward +Click continue rebase on the main rebase window + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_9.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +In case of more files or conflicts, you would have to resolve them later. Keep in mind that working with bigger files or changes could take some time. + +## Diff tool way + +Here I modified a little history of the repository so we can work with something. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_10.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ + +Let’s rebase again and develop to a master branch. + +1. Checkout to develop + +2. Choose the first master commit with the message “Some other changes”, and click the right mouse button on it + +3. Rebase current branch on -> selected commit. + +Then the magic begins. I omit the steps to merge conflicts window, which is the same as above. Chose to open it up in kdiff3 or another merging/diff tool. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_11.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +You should see a window similar to below: + + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_12.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Three directory-merge + +- (“A” is treated as the older base of both). + +- B – is a (theirs) master branch version + +- C – is a (ours) in that case, develop branch version + +Below is the Output window that will contain the merging result. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_13.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +You can choose whatever version of the file you would like and combine them in the output you can see I have chosen one line from C, one line from A, and one line from B. +Then I saved the file and continue to rebase after solving the conflicts. Simply as that, but sometimes it can be tricky so pay attention. +Result of rebasing: + + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_14.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +It will create .orig file extensions so you can always see the history of your changes. +It is better to not commit those files to your repository. + +That’s it! I hope the article will help you with resolving the conflicts! diff --git a/_i18n/en/_posts/2023-10-23-how-to-store-big-binary-files-with-git-lfs.md b/_i18n/en/_posts/2023-10-23-how-to-store-big-binary-files-with-git-lfs.md index 66d4fa4b..61cd7886 100644 --- a/_i18n/en/_posts/2023-10-23-how-to-store-big-binary-files-with-git-lfs.md +++ b/_i18n/en/_posts/2023-10-23-how-to-store-big-binary-files-with-git-lfs.md @@ -1,323 +1,323 @@ ---- -layout: post -title: How to store big binary files with git lfs on Google Drive or One Drive? -date: 2023-10-23 16:40:16 -tags: git git-lfs git-extensions unity unreal-engine -categories: tutorials ---- - -# Transfer adapter - -I suggest connecting git lfs with custom transfer adapter. According to git-lfs documentation: - - -> Git LFS supports multiple ways to transfer (upload and download) files. -> In the core client, the basic way to do this is via a one-off HTTP request via the URL returned from the LFS API for a given object. -> The core client also supports extensions to allow resuming of downloads (via Range headers) and uploads (via the tus.io protocol). - - -# Usage examples - -I used this approach to storage media files in my software development project and game dev project. -I bet you can do it too. In the most cases I like to use it for: -- game dev projects in game engines like Unity and Unreal Engine. -- dbdumps storage -- big media files storage (in case you need a one) - -There are always a way to do it for another kind of projects. - -In example bellow I will be using gitlab, google drive and other tools. - -# Gitlab setup - -Firstly you need to disable default lfs service of gitlab. It's very vell documented feature in official documentation -[Gitlab](https://docs.gitlab.com/ee/topics/git/lfs) but there is not much information how to disable it. - -It's a litle tricky and not really user friendly but obviously you need to select your repository and dive into settings. - - - -
-
- {% include figure.liquid path="assets/img/posts/settings_gitlab.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- {% include figure.liquid path="assets/img/posts/disable_gitlab_lfs_example.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- -Although! - -
-
- {% include figure.liquid path="assets/img/posts/yoda-there-is.gif" class="img-fluid rounded z-depth-1" width="30%" zoomable=true %} -
-
- -There is another way also via gitlab cli, and to CI tools too via environment variables but I will not cover this, let's keep it simple. - -If giltab lfs is disabled on remote you can start with local setup. - -# Local repository setup - -You will need a new repository or use existing one. I suggest starting with fresh state so -you can go with easier setup guide bellow. - -``` -git init -``` - -Add also remote server link. That can be done after setup or later. -For gitlab you can follow simple tutorial [link to git](https://docs.gitlab.com/ee/gitlab-basics/start-using-git.html#add-a-remote) - -# Lfs setup - - -Download a lfs adapter tool from [available releases](https://github.com/sinbad/lfs-folderstore/releases/tag/v1.0.1). - - -
- {% include figure.liquid path="assets/img/posts/OIP.jpg" class="img-fluid rounded z-depth-1" width="50%" zoomable=true %} -
- -Download, unzip, install it -to some good known location. For example make a new folder in you main work disk like this ```C:\Tools``` so full path to the tool -will be like this ```C:\Tools\lfs-folderstore.exe```. - - -To set up repo with lfs please add .gitattributes file in your repository. -For examples check this [link](https://github.com/gitattributes/gitattributes). - -## Unity .gitattributes - -``` -## in root - -*.cs diff=csharp text -*.cginc text -*.shader text - -*.mat merge=unityyamlmerge eol=lf -*.anim merge=unityyamlmerge eol=lf -*.unity merge=unityyamlmerge eol=lf -*.prefab merge=unityyamlmerge eol=lf -*.physicsMaterial2D merge=unityyamlmerge eol=lf -*.physicMaterial merge=unityyamlmerge eol=lf -*.asset merge=unityyamlmerge eol=lf -text -*.meta merge=unityyamlmerge eol=lf -*.controller merge=unityyamlmerge eol=lf - -## git-lfs ## - -#Image -*.jpg filter=lfs diff=lfs merge=lfs -text -*.jpeg filter=lfs diff=lfs merge=lfs -text -*.png filter=lfs diff=lfs merge=lfs -text -*.gif filter=lfs diff=lfs merge=lfs -text -*.psd filter=lfs diff=lfs merge=lfs -text -*.ai filter=lfs diff=lfs merge=lfs -text -*.tif filter=lfs diff=lfs merge=lfs -text - -#Audio -*.mp3 filter=lfs diff=lfs merge=lfs -text -*.wav filter=lfs diff=lfs merge=lfs -text -*.ogg filter=lfs diff=lfs merge=lfs -text -#Wwise -*.bnk filter=lfs diff=lfs merge=lfs -text - -#Video -*.mp4 filter=lfs diff=lfs merge=lfs -text -*.mov filter=lfs diff=lfs merge=lfs -text - -#3D Object -*.FBX filter=lfs diff=lfs merge=lfs -text -*.fbx filter=lfs diff=lfs merge=lfs -text -*.blend filter=lfs diff=lfs merge=lfs -text -*.obj filter=lfs diff=lfs merge=lfs -text - -#ETC -*.a filter=lfs diff=lfs merge=lfs -text -*.exr filter=lfs diff=lfs merge=lfs -text -*.tga filter=lfs diff=lfs merge=lfs -text -*.zip filter=lfs diff=lfs merge=lfs -text -*.dll filter=lfs diff=lfs merge=lfs -text -*.unitypackage filter=lfs diff=lfs merge=lfs -text -*.aif filter=lfs diff=lfs merge=lfs -text -*.ttf filter=lfs diff=lfs merge=lfs -text -*.rns filter=lfs diff=lfs merge=lfs -text -*.reason filter=lfs diff=lfs merge=lfs -text -*.lxo filter=lfs diff=lfs merge=lfs -text - -``` - -## Unreal Engine .gitattributes -``` -## Unreal Engine -## Auto detect text files and perform LF normalization ## - -* text=auto - -# UE file types -*.uasset filter=lfs diff=lfs merge=lfs -text -*.umap filter=lfs diff=lfs merge=lfs -text -*.udk filter=lfs diff=lfs merge=lfs -text -*.upk filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# 2D formats -# Read more in: https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/Textures/Importing/ - -# Recommended use: -*.[tT][gG][aA] filter=lfs diff=lfs merge=lfs -text -*.[pP][nN][gG] filter=lfs diff=lfs merge=lfs -text -*.[bB][mM][pP] filter=lfs diff=lfs merge=lfs -text - -# Can also be used: -*.[fF][lL[oO][aA][tT] filter=lfs diff=lfs merge=lfs -text -*.[jJ][pP][eE][gG] filter=lfs diff=lfs merge=lfs -text -*.[jJ][pP][gG] filter=lfs diff=lfs merge=lfs -text -*.[pP][cC][xX] filter=lfs diff=lfs merge=lfs -text -*.[pP][sS][dD] filter=lfs diff=lfs merge=lfs -text -*.[xX][cC][fF] filter=lfs diff=lfs merge=lfs -text -*.[tT][iI][fF] filter=lfs diff=lfs merge=lfs -text -*.[tT][iI][fF][fF] filter=lfs diff=lfs merge=lfs -text - -# Other supported formats: -*.[hH][dD][rR] filter=lfs diff=lfs merge=lfs -text -*.[dD][dD][sS] filter=lfs diff=lfs merge=lfs -text -*.[eE][xX][rR] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# 3D formats - -# Always recommended to use: -# The UE4 FBX import pipeline uses FBX 2018 -*.[fF][bB][xX] filter=lfs diff=lfs merge=lfs -text - -# Can also be used: -*.[oO][bB][jJ] filter=lfs diff=lfs merge=lfs -text - -# Other supported formats: -*.[aA][bB][cC] filter=lfs diff=lfs merge=lfs -text -*.[sS][rR][tT] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# Audio formats -# Read more in: https://docs.unrealengine.com/4.27/en-US/WorkingWithAudio/Overview/#:~:text=Unreal%20Engine%204%20(UE4)%20supports,16%2Dbit%20format%20PCM%20files. - -# Always recommended to use: -*.[wW][aA][vV] filter=lfs diff=lfs merge=lfs -text - -# Can also be used: -*.[aA][iI][fF][fF] filter=lfs diff=lfs merge=lfs -text -*.[oO][gG][gG] filter=lfs diff=lfs merge=lfs -text -*.[fF][lL][aA][cC] filter=lfs diff=lfs merge=lfs -text - -# Not recommended to use, but supported: -*.[mM][pP]3 filter=lfs diff=lfs merge=lfs -text -*.[wW][mM][aA] filter=lfs diff=lfs merge=lfs -text -*.[aA][cC]3 filter=lfs diff=lfs merge=lfs -text -*.[aA][mM][rR] filter=lfs diff=lfs merge=lfs -text -*.[aA][iI][fF] filter=lfs diff=lfs merge=lfs -text -*.[aA][uU] filter=lfs diff=lfs merge=lfs -text -*.[cC][dD][dD][aA] filter=lfs diff=lfs merge=lfs -text -*.[cC][aA][fF] filter=lfs diff=lfs merge=lfs -text -*.[bB][wW][fF] filter=lfs diff=lfs merge=lfs -text -*.[aA][dD][tT][sS] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# Video formats -# Read more in: https://docs.unrealengine.com/5.0/en-US/media-framework-technical-reference-for-unreal-engine/ - -# Always recommended to use, supports all platforms: -# For the best compatibility and performance, it is recommended to use H.264 encoded MP4 (.mp4) container files. -*.[mM][pP]4 filter=lfs diff=lfs merge=lfs -text - -# Can also be used, only some platforms are supported: -*.3[gG]2 filter=lfs diff=lfs merge=lfs -text -*.3[gG][pP] filter=lfs diff=lfs merge=lfs -text -*.3[gG][pP]2 filter=lfs diff=lfs merge=lfs -text -*.3[gG][pP][pP] filter=lfs diff=lfs merge=lfs -text -*.[mM]4[aA] filter=lfs diff=lfs merge=lfs -text -*.[mM]4[vV] filter=lfs diff=lfs merge=lfs -text -*.[mM][o][vV] filter=lfs diff=lfs merge=lfs -text -*.[aA][sS][fF] filter=lfs diff=lfs merge=lfs -text -*.[aA][vV][iI] filter=lfs diff=lfs merge=lfs -text -*.[wW][mM][vV] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# Fonts -# Read more in: https://docs.unrealengine.com/5.0/en-US/importing-fonts-in-unreal-engine/ - -*.[tT][tT][fF] filter=lfs diff=lfs merge=lfs -text -*.[oO][tT][fF] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# Documents -*.[cC][sS][vV] filter=lfs diff=lfs merge=lfs -text - -``` -# Goolge Drive Setup - -If repo is ready, you will need some kind of disk space to make it works. So to fully integrate it use Google Drive Client [Download](https://www.google.com/drive/download/). -Install it and login so you can create a folder to store all big binary data. - -After loging you should be able to see your mounted folder in Finder in case using Mac or Windows Explorer as seperated disk. Open it and create a new folder there with name -``binary-lfs``. That name will be used to store all binary data for you project in lfs setup. - -# Git config integration - -If you have done right everything now it's a time to connect git-lfs with our tool and google drive. - -I used my favorite open-source [GitExtension](https://git-extensions-documentation.readthedocs.io/) software as reference for integration, but you can use terminal by using git config approach -or any kind of text editor. In case using text editor open up config file inside hidden .git folder inside root folder of your project repository. - -To open up the configuration of your github repository choose following option: - - -
- {% include figure.liquid path="assets/img/posts/integration_gitextension.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Open it up and append following lines, similar as inside [Cloning a repo](#cloning-a-repo) - -``` -[lfs "customtransfer.lfs-folder"] - path = C:\\Tools\\lfs-folderstore.exe - args = 'I:\\My drive\\binary-lfs' -[lfs] - standalonetransferagent = lfs-folder - repositoryformatversion = 0 -``` - -Afterwards you should be good to go, afterwards remember to sort out the LFS files in your checkout and copy the content from the now-configured shared folder, by using following command -```bash -git reset --hard master -``` -or if you are using fresh repository simply push it - -``` -git push -u origin main -``` - -# Troubleshooting - -Sometimes there could be some problems with your network or issues with git lfs -In case of smudge errors or problems you can use following hacks: -- try using better internet connection low network bandwidth is not helping -- restart computer -- use ``git lfs fetch --all`` fetch git lfs files for ALL remote branches -- move your google drive or one drive directory cache to new folder and try to download the data again - - -# Bibliography and sources - -- [Lfs folderstore repo](https://github.com/sinbad/lfs-folderstore) -- [Google Drive](https://www.google.com/drive/download/) -- [Gitlab Docs](https://docs.gitlab.com/) +--- +layout: post +title: How to store big binary files with git lfs on Google Drive or One Drive? +date: 2023-10-23 16:40:16 +tags: git git-lfs git-extensions unity unreal-engine +categories: tutorials +--- + +# Transfer adapter + +I suggest connecting git lfs with custom transfer adapter. According to git-lfs documentation: + + +> Git LFS supports multiple ways to transfer (upload and download) files. +> In the core client, the basic way to do this is via a one-off HTTP request via the URL returned from the LFS API for a given object. +> The core client also supports extensions to allow resuming of downloads (via Range headers) and uploads (via the tus.io protocol). + + +# Usage examples + +I used this approach to storage media files in my software development project and game dev project. +I bet you can do it too. In the most cases I like to use it for: +- game dev projects in game engines like Unity and Unreal Engine. +- dbdumps storage +- big media files storage (in case you need a one) + +There are always a way to do it for another kind of projects. + +In example bellow I will be using gitlab, google drive and other tools. + +# Gitlab setup + +Firstly you need to disable default lfs service of gitlab. It's very vell documented feature in official documentation +[Gitlab](https://docs.gitlab.com/ee/topics/git/lfs) but there is not much information how to disable it. + +It's a litle tricky and not really user friendly but obviously you need to select your repository and dive into settings. + + + +
+
+ {% include figure.liquid path="assets/img/posts/settings_gitlab.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ {% include figure.liquid path="assets/img/posts/disable_gitlab_lfs_example.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ +Although! + +
+
+ {% include figure.liquid path="assets/img/posts/yoda-there-is.gif" class="img-fluid rounded z-depth-1" width="30%" zoomable=true %} +
+
+ +There is another way also via gitlab cli, and to CI tools too via environment variables but I will not cover this, let's keep it simple. + +If giltab lfs is disabled on remote you can start with local setup. + +# Local repository setup + +You will need a new repository or use existing one. I suggest starting with fresh state so +you can go with easier setup guide bellow. + +``` +git init +``` + +Add also remote server link. That can be done after setup or later. +For gitlab you can follow simple tutorial [link to git](https://docs.gitlab.com/ee/gitlab-basics/start-using-git.html#add-a-remote) + +# Lfs setup + + +Download a lfs adapter tool from [available releases](https://github.com/sinbad/lfs-folderstore/releases/tag/v1.0.1). + + +
+ {% include figure.liquid path="assets/img/posts/OIP.jpg" class="img-fluid rounded z-depth-1" width="50%" zoomable=true %} +
+ +Download, unzip, install it +to some good known location. For example make a new folder in you main work disk like this ```C:\Tools``` so full path to the tool +will be like this ```C:\Tools\lfs-folderstore.exe```. + + +To set up repo with lfs please add .gitattributes file in your repository. +For examples check this [link](https://github.com/gitattributes/gitattributes). + +## Unity .gitattributes + +``` +## in root + +*.cs diff=csharp text +*.cginc text +*.shader text + +*.mat merge=unityyamlmerge eol=lf +*.anim merge=unityyamlmerge eol=lf +*.unity merge=unityyamlmerge eol=lf +*.prefab merge=unityyamlmerge eol=lf +*.physicsMaterial2D merge=unityyamlmerge eol=lf +*.physicMaterial merge=unityyamlmerge eol=lf +*.asset merge=unityyamlmerge eol=lf -text +*.meta merge=unityyamlmerge eol=lf +*.controller merge=unityyamlmerge eol=lf + +## git-lfs ## + +#Image +*.jpg filter=lfs diff=lfs merge=lfs -text +*.jpeg filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.gif filter=lfs diff=lfs merge=lfs -text +*.psd filter=lfs diff=lfs merge=lfs -text +*.ai filter=lfs diff=lfs merge=lfs -text +*.tif filter=lfs diff=lfs merge=lfs -text + +#Audio +*.mp3 filter=lfs diff=lfs merge=lfs -text +*.wav filter=lfs diff=lfs merge=lfs -text +*.ogg filter=lfs diff=lfs merge=lfs -text +#Wwise +*.bnk filter=lfs diff=lfs merge=lfs -text + +#Video +*.mp4 filter=lfs diff=lfs merge=lfs -text +*.mov filter=lfs diff=lfs merge=lfs -text + +#3D Object +*.FBX filter=lfs diff=lfs merge=lfs -text +*.fbx filter=lfs diff=lfs merge=lfs -text +*.blend filter=lfs diff=lfs merge=lfs -text +*.obj filter=lfs diff=lfs merge=lfs -text + +#ETC +*.a filter=lfs diff=lfs merge=lfs -text +*.exr filter=lfs diff=lfs merge=lfs -text +*.tga filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.dll filter=lfs diff=lfs merge=lfs -text +*.unitypackage filter=lfs diff=lfs merge=lfs -text +*.aif filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.rns filter=lfs diff=lfs merge=lfs -text +*.reason filter=lfs diff=lfs merge=lfs -text +*.lxo filter=lfs diff=lfs merge=lfs -text + +``` + +## Unreal Engine .gitattributes +``` +## Unreal Engine +## Auto detect text files and perform LF normalization ## + +* text=auto + +# UE file types +*.uasset filter=lfs diff=lfs merge=lfs -text +*.umap filter=lfs diff=lfs merge=lfs -text +*.udk filter=lfs diff=lfs merge=lfs -text +*.upk filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# 2D formats +# Read more in: https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/Textures/Importing/ + +# Recommended use: +*.[tT][gG][aA] filter=lfs diff=lfs merge=lfs -text +*.[pP][nN][gG] filter=lfs diff=lfs merge=lfs -text +*.[bB][mM][pP] filter=lfs diff=lfs merge=lfs -text + +# Can also be used: +*.[fF][lL[oO][aA][tT] filter=lfs diff=lfs merge=lfs -text +*.[jJ][pP][eE][gG] filter=lfs diff=lfs merge=lfs -text +*.[jJ][pP][gG] filter=lfs diff=lfs merge=lfs -text +*.[pP][cC][xX] filter=lfs diff=lfs merge=lfs -text +*.[pP][sS][dD] filter=lfs diff=lfs merge=lfs -text +*.[xX][cC][fF] filter=lfs diff=lfs merge=lfs -text +*.[tT][iI][fF] filter=lfs diff=lfs merge=lfs -text +*.[tT][iI][fF][fF] filter=lfs diff=lfs merge=lfs -text + +# Other supported formats: +*.[hH][dD][rR] filter=lfs diff=lfs merge=lfs -text +*.[dD][dD][sS] filter=lfs diff=lfs merge=lfs -text +*.[eE][xX][rR] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# 3D formats + +# Always recommended to use: +# The UE4 FBX import pipeline uses FBX 2018 +*.[fF][bB][xX] filter=lfs diff=lfs merge=lfs -text + +# Can also be used: +*.[oO][bB][jJ] filter=lfs diff=lfs merge=lfs -text + +# Other supported formats: +*.[aA][bB][cC] filter=lfs diff=lfs merge=lfs -text +*.[sS][rR][tT] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# Audio formats +# Read more in: https://docs.unrealengine.com/4.27/en-US/WorkingWithAudio/Overview/#:~:text=Unreal%20Engine%204%20(UE4)%20supports,16%2Dbit%20format%20PCM%20files. + +# Always recommended to use: +*.[wW][aA][vV] filter=lfs diff=lfs merge=lfs -text + +# Can also be used: +*.[aA][iI][fF][fF] filter=lfs diff=lfs merge=lfs -text +*.[oO][gG][gG] filter=lfs diff=lfs merge=lfs -text +*.[fF][lL][aA][cC] filter=lfs diff=lfs merge=lfs -text + +# Not recommended to use, but supported: +*.[mM][pP]3 filter=lfs diff=lfs merge=lfs -text +*.[wW][mM][aA] filter=lfs diff=lfs merge=lfs -text +*.[aA][cC]3 filter=lfs diff=lfs merge=lfs -text +*.[aA][mM][rR] filter=lfs diff=lfs merge=lfs -text +*.[aA][iI][fF] filter=lfs diff=lfs merge=lfs -text +*.[aA][uU] filter=lfs diff=lfs merge=lfs -text +*.[cC][dD][dD][aA] filter=lfs diff=lfs merge=lfs -text +*.[cC][aA][fF] filter=lfs diff=lfs merge=lfs -text +*.[bB][wW][fF] filter=lfs diff=lfs merge=lfs -text +*.[aA][dD][tT][sS] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# Video formats +# Read more in: https://docs.unrealengine.com/5.0/en-US/media-framework-technical-reference-for-unreal-engine/ + +# Always recommended to use, supports all platforms: +# For the best compatibility and performance, it is recommended to use H.264 encoded MP4 (.mp4) container files. +*.[mM][pP]4 filter=lfs diff=lfs merge=lfs -text + +# Can also be used, only some platforms are supported: +*.3[gG]2 filter=lfs diff=lfs merge=lfs -text +*.3[gG][pP] filter=lfs diff=lfs merge=lfs -text +*.3[gG][pP]2 filter=lfs diff=lfs merge=lfs -text +*.3[gG][pP][pP] filter=lfs diff=lfs merge=lfs -text +*.[mM]4[aA] filter=lfs diff=lfs merge=lfs -text +*.[mM]4[vV] filter=lfs diff=lfs merge=lfs -text +*.[mM][o][vV] filter=lfs diff=lfs merge=lfs -text +*.[aA][sS][fF] filter=lfs diff=lfs merge=lfs -text +*.[aA][vV][iI] filter=lfs diff=lfs merge=lfs -text +*.[wW][mM][vV] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# Fonts +# Read more in: https://docs.unrealengine.com/5.0/en-US/importing-fonts-in-unreal-engine/ + +*.[tT][tT][fF] filter=lfs diff=lfs merge=lfs -text +*.[oO][tT][fF] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# Documents +*.[cC][sS][vV] filter=lfs diff=lfs merge=lfs -text + +``` +# Goolge Drive Setup + +If repo is ready, you will need some kind of disk space to make it works. So to fully integrate it use Google Drive Client [Download](https://www.google.com/drive/download/). +Install it and login so you can create a folder to store all big binary data. + +After loging you should be able to see your mounted folder in Finder in case using Mac or Windows Explorer as seperated disk. Open it and create a new folder there with name +``binary-lfs``. That name will be used to store all binary data for you project in lfs setup. + +# Git config integration + +If you have done right everything now it's a time to connect git-lfs with our tool and google drive. + +I used my favorite open-source [GitExtension](https://git-extensions-documentation.readthedocs.io/) software as reference for integration, but you can use terminal by using git config approach +or any kind of text editor. In case using text editor open up config file inside hidden .git folder inside root folder of your project repository. + +To open up the configuration of your github repository choose following option: + + +
+ {% include figure.liquid path="assets/img/posts/integration_gitextension.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Open it up and append following lines, similar as inside [Cloning a repo](#cloning-a-repo) + +``` +[lfs "customtransfer.lfs-folder"] + path = C:\\Tools\\lfs-folderstore.exe + args = 'I:\\My drive\\binary-lfs' +[lfs] + standalonetransferagent = lfs-folder + repositoryformatversion = 0 +``` + +Afterwards you should be good to go, afterwards remember to sort out the LFS files in your checkout and copy the content from the now-configured shared folder, by using following command +```bash +git reset --hard master +``` +or if you are using fresh repository simply push it + +``` +git push -u origin main +``` + +# Troubleshooting + +Sometimes there could be some problems with your network or issues with git lfs +In case of smudge errors or problems you can use following hacks: +- try using better internet connection low network bandwidth is not helping +- restart computer +- use ``git lfs fetch --all`` fetch git lfs files for ALL remote branches +- move your google drive or one drive directory cache to new folder and try to download the data again + + +# Bibliography and sources + +- [Lfs folderstore repo](https://github.com/sinbad/lfs-folderstore) +- [Google Drive](https://www.google.com/drive/download/) +- [Gitlab Docs](https://docs.gitlab.com/) diff --git a/_i18n/pl.yml b/_i18n/pl.yml index d09eb5b6..461afce1 100644 --- a/_i18n/pl.yml +++ b/_i18n/pl.yml @@ -103,6 +103,9 @@ projects: categories: fun: zabawa work: praca + game-dev: game-dev + web-development: aplikacje webowe + desktop: aplikacje desktopowe repositories: users: Użytkownicy GitHub repos: Repozytoria GitHub diff --git a/_i18n/pl/_posts/2022-07-17-how-to-start-with-git.md b/_i18n/pl/_posts/2022-07-17-how-to-start-with-git.md index 191a38c6..c4fdbacb 100644 --- a/_i18n/pl/_posts/2022-07-17-how-to-start-with-git.md +++ b/_i18n/pl/_posts/2022-07-17-how-to-start-with-git.md @@ -1,156 +1,156 @@ ---- -layout: post -title: Jak zacząć z GIT-em? -date: 2022-07-17 16:40:16 -tags: git gitExtensions -categories: tutorials ---- - - -Zastanawiałem się, co oznacza GIT. Oto co znalazłem: - -> GIT to słowo będące skrótem od angielskiego słowa "get", które zostało skrócone z "begetting". -> Jest również niejawne odniesienie do nieślubnych potomków, -> a termin jest mniej więcej synonimem głupca, durnia, kretyna lub idioty. W społeczności open source znaczenie wyboru nazwy różni się. - -Oznacza to, że GIT jest dla idiotów, którzy nie wiedzą, co robią. Doskonałe narzędzie dla programisty. Zacznijmy od początku. - -Linus Torvalds zdecydował się na jego rozwój dla jądra Linuxa. Od 2005 roku pomaga programistom śledzić zmiany w kodzie. Dostępny we wszystkich systemach operacyjnych i używany przez użytkowników na całym świecie. Łatwo z nim zacząć, ale trudniej być w nim eksperte. Jest to system kontroli wersji. Możesz go pobrać ze [tej strony](https://git-scm.com/downloads) i wypróbować samodzielnie. - -# Podstawy - -Pobierz i zainstaluj [gita](https://git-scm.com/downloads) na swoim systemie operacyjnym. -Aby kontynuować, musisz otworzyć terminal. -Po instalacji powinieneś być w stanie wykonać kilka poleceń gita. -Utwórz nowy folder. Następnie otwórz terminal w nowym folderze. -Utwórzmy repozytorium. Aby to osiągnąć, użyj poniższego polecenia. - -```bash -git init -``` - -# Narzędzia - -Istnieje kilka narzędzi GUI (ang. Graphic User Interface), które mogą pomóc Ci w rozpoczęciu pracy z Gitem. -Jeśli nie jesteś fanem terminala, polecam [GitExtensions](https://gitextensions.github.io/) - -
- {% include figure.liquid path="assets/img/posts/gitextension.png" alt="git extensions editor window" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Alternatywnie możesz użyć [SourceTree](https://www.sourcetreeapp.com/) jest on darmową alternatywą dla systemu Mac. Myślę, że jeśli używasz Linuxa, to równie dobrze możesz również korzystać z terminala. - -![SourceTree!](https://wac-cdn.atlassian.com/dam/jcr:580c367b-c240-453d-aa18-c7ced44324f9/hero-mac-screenshot.png?cdnVersion=651) - -# Commit -Dobrze, jak dotąd! Teraz zróbmy kilka commitów. Stwórz plik HTML o następującej zawartości. - -```html -

Hello there

-``` - -Teraz jesteś gotowy, do daleszej pracy z obszarem staging. -Co to jest obszar staging - wyjaśnijmy to jako pudełko, do którego wkładasz rzeczy, a następnie używasz go jako migawki, aby zatwierdzić zmiany. -Aby to zrobić, powinieneś określić ścieżkę do pliku w formacie pliku lub ścieżkę z jakimś wzorcem, np. - -```bash -.txt .xml, etc. -``` - -Polecenie dodawania pliku hello.html w terminalu - -```bash -git add hello.html -``` - -Możesz także dodać wszystkie pliki - -```bash -git add * -``` - -Następnie, wpisując: - -``` -git status -``` - -Powinieneś zobaczyć wszystkie pliki, które zostały przez ciebie dodane do obszaru staging. - -Następnie możesz zatwierdzić hello.html w swoim lokalnym repozytorium. -```bash -git commit -m "Add hello there file" -``` - -commit - to polecenie, które zapisuje migawkę "pudełka", które wcześniej dodaliśmy. - -# Commits message standards - -Chcę wyjaśnić kilka standardów dotyczących wiadomości commitów i jak często powinieneś to robić. Słyszałem, że im częściej to robisz, tym lepiej. Nie ma ograniczenia, później zawsze możesz zmniejszyć liczbę commitów, używając funkcji squash. Zacznijmy od formy wiadomości commita. Jak to powinno się robić: - -- Użyj zdaniowych trybów w linii tematu, np. "Naprawia uszkodzony link do Javadoc" - -- Rozpocznij zdanie linii tematu wielką literą, np. "Dodaje, Usuwa, Naprawia, Wprowadza, Unikaj itp." - -- Nie kończ linii tematu kropką - -- Zachowaj linie tematu do 50 znaków lub mniej, jeśli to możliwe - -- Zawijaj linie w treści na 72 znaki lub mniej - -- Wzmień związane z nim numery Jira na końcu komentarza commita, poprzedzone „Issue:” jak powyżej - -- W treści wiadomości commita wyjaśnij, jak działały rzeczy przed tym commitem, co się zmieniło i jak teraz działają rzeczy - -Lubie także dodać jakiś rodzaj tagu przed wiadomością commita, oto kilka przykładów: - - -```bash -– Feature - -– Bugfix - -– Cleanup - -– Hotfix -``` - -Kiedy pracujesz nad zadaniem, dobrze jest dodać pewną liczbę zadań, takich jak #123, które odnoszą się do niektórych. Podsumowując, powinno to wyglądać tak: - -```bash -[FEATURE] #123 My super not quite long commit message. - - -Here goes body messages where we describe what is going on. -Keep it short as much as you can, but include all necessary details -inside. - -Footer where summary and all other references should be applied for -example: -Those commits resolve issue #123 and #124 -``` - - -Git branches – tree of changes -Commits can be added to branches. The branch is a set of commits that are separated from the main branch just like in a tree with leafs. To create a branch: - -```bash -git branch -``` - -Aby zmienić gałąź - -``` -git checkout -``` - -Po zainicjowaniu repozytorium gita zwykle masz jedną istniejącą główną gałąź, z której wszystkie utworzone później gałęzie mogą być pochodne. Używaj ich, aby grupować pewne zmiany w funkcji, nad którą pracujesz. - -# Workflow - -Polecam zapoznanie się z kilkoma pojęciami gita, takimi jak gałąź, rebase, merge i squash. Po tym możesz zacząć myśleć o tym, jak pracować i zarządzać swoją pracą jako programista. Jestem wielkim zwolennikiem normalizacji i standardów przepływów pracy. Znalazłem kilka metodologii, które są popularne obecnie podczas pracy z gitem. - -- Gitflow -- Trunk - +--- +layout: post +title: Jak zacząć z GIT-em? +date: 2022-07-17 16:40:16 +tags: git gitExtensions +categories: tutorials +--- + + +Zastanawiałem się, co oznacza GIT. Oto co znalazłem: + +> GIT to słowo będące skrótem od angielskiego słowa "get", które zostało skrócone z "begetting". +> Jest również niejawne odniesienie do nieślubnych potomków, +> a termin jest mniej więcej synonimem głupca, durnia, kretyna lub idioty. W społeczności open source znaczenie wyboru nazwy różni się. + +Oznacza to, że GIT jest dla idiotów, którzy nie wiedzą, co robią. Doskonałe narzędzie dla programisty. Zacznijmy od początku. + +Linus Torvalds zdecydował się na jego rozwój dla jądra Linuxa. Od 2005 roku pomaga programistom śledzić zmiany w kodzie. Dostępny we wszystkich systemach operacyjnych i używany przez użytkowników na całym świecie. Łatwo z nim zacząć, ale trudniej być w nim eksperte. Jest to system kontroli wersji. Możesz go pobrać ze [tej strony](https://git-scm.com/downloads) i wypróbować samodzielnie. + +# Podstawy + +Pobierz i zainstaluj [gita](https://git-scm.com/downloads) na swoim systemie operacyjnym. +Aby kontynuować, musisz otworzyć terminal. +Po instalacji powinieneś być w stanie wykonać kilka poleceń gita. +Utwórz nowy folder. Następnie otwórz terminal w nowym folderze. +Utwórzmy repozytorium. Aby to osiągnąć, użyj poniższego polecenia. + +```bash +git init +``` + +# Narzędzia + +Istnieje kilka narzędzi GUI (ang. Graphic User Interface), które mogą pomóc Ci w rozpoczęciu pracy z Gitem. +Jeśli nie jesteś fanem terminala, polecam [GitExtensions](https://gitextensions.github.io/) + +
+ {% include figure.liquid path="assets/img/posts/gitextension.png" alt="git extensions editor window" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Alternatywnie możesz użyć [SourceTree](https://www.sourcetreeapp.com/) jest on darmową alternatywą dla systemu Mac. Myślę, że jeśli używasz Linuxa, to równie dobrze możesz również korzystać z terminala. + +![SourceTree!](https://wac-cdn.atlassian.com/dam/jcr:580c367b-c240-453d-aa18-c7ced44324f9/hero-mac-screenshot.png?cdnVersion=651) + +# Commit +Dobrze, jak dotąd! Teraz zróbmy kilka commitów. Stwórz plik HTML o następującej zawartości. + +```html +

Hello there

+``` + +Teraz jesteś gotowy, do daleszej pracy z obszarem staging. +Co to jest obszar staging - wyjaśnijmy to jako pudełko, do którego wkładasz rzeczy, a następnie używasz go jako migawki, aby zatwierdzić zmiany. +Aby to zrobić, powinieneś określić ścieżkę do pliku w formacie pliku lub ścieżkę z jakimś wzorcem, np. + +```bash +.txt .xml, etc. +``` + +Polecenie dodawania pliku hello.html w terminalu + +```bash +git add hello.html +``` + +Możesz także dodać wszystkie pliki + +```bash +git add * +``` + +Następnie, wpisując: + +``` +git status +``` + +Powinieneś zobaczyć wszystkie pliki, które zostały przez ciebie dodane do obszaru staging. + +Następnie możesz zatwierdzić hello.html w swoim lokalnym repozytorium. +```bash +git commit -m "Add hello there file" +``` + +commit - to polecenie, które zapisuje migawkę "pudełka", które wcześniej dodaliśmy. + +# Commits message standards + +Chcę wyjaśnić kilka standardów dotyczących wiadomości commitów i jak często powinieneś to robić. Słyszałem, że im częściej to robisz, tym lepiej. Nie ma ograniczenia, później zawsze możesz zmniejszyć liczbę commitów, używając funkcji squash. Zacznijmy od formy wiadomości commita. Jak to powinno się robić: + +- Użyj zdaniowych trybów w linii tematu, np. "Naprawia uszkodzony link do Javadoc" + +- Rozpocznij zdanie linii tematu wielką literą, np. "Dodaje, Usuwa, Naprawia, Wprowadza, Unikaj itp." + +- Nie kończ linii tematu kropką + +- Zachowaj linie tematu do 50 znaków lub mniej, jeśli to możliwe + +- Zawijaj linie w treści na 72 znaki lub mniej + +- Wzmień związane z nim numery Jira na końcu komentarza commita, poprzedzone „Issue:” jak powyżej + +- W treści wiadomości commita wyjaśnij, jak działały rzeczy przed tym commitem, co się zmieniło i jak teraz działają rzeczy + +Lubie także dodać jakiś rodzaj tagu przed wiadomością commita, oto kilka przykładów: + + +```bash +– Feature + +– Bugfix + +– Cleanup + +– Hotfix +``` + +Kiedy pracujesz nad zadaniem, dobrze jest dodać pewną liczbę zadań, takich jak #123, które odnoszą się do niektórych. Podsumowując, powinno to wyglądać tak: + +```bash +[FEATURE] #123 My super not quite long commit message. + + +Here goes body messages where we describe what is going on. +Keep it short as much as you can, but include all necessary details +inside. + +Footer where summary and all other references should be applied for +example: +Those commits resolve issue #123 and #124 +``` + + +Git branches – tree of changes +Commits can be added to branches. The branch is a set of commits that are separated from the main branch just like in a tree with leafs. To create a branch: + +```bash +git branch +``` + +Aby zmienić gałąź + +``` +git checkout +``` + +Po zainicjowaniu repozytorium gita zwykle masz jedną istniejącą główną gałąź, z której wszystkie utworzone później gałęzie mogą być pochodne. Używaj ich, aby grupować pewne zmiany w funkcji, nad którą pracujesz. + +# Workflow + +Polecam zapoznanie się z kilkoma pojęciami gita, takimi jak gałąź, rebase, merge i squash. Po tym możesz zacząć myśleć o tym, jak pracować i zarządzać swoją pracą jako programista. Jestem wielkim zwolennikiem normalizacji i standardów przepływów pracy. Znalazłem kilka metodologii, które są popularne obecnie podczas pracy z gitem. + +- Gitflow +- Trunk + Wybierz pierwszy, jeśli nie masz w swoim zestawie narzędzi CI/CD. Drugi jest świetny przy pracy z zintegrowanymi narzędziami do przeglądu kodu. \ No newline at end of file diff --git a/_i18n/pl/_posts/2022-08-06-how-to-solve-rebase-merge-conflicts-with-GitExtensions.md b/_i18n/pl/_posts/2022-08-06-how-to-solve-rebase-merge-conflicts-with-GitExtensions.md index 712dd7b6..69b03bc1 100644 --- a/_i18n/pl/_posts/2022-08-06-how-to-solve-rebase-merge-conflicts-with-GitExtensions.md +++ b/_i18n/pl/_posts/2022-08-06-how-to-solve-rebase-merge-conflicts-with-GitExtensions.md @@ -1,134 +1,134 @@ ---- -layout: post -title: Jak rozwiązywać konfilkty przy pomocy GitExtensions? -date: 2022-08-06 16:40:16 -tags: git gitExtensions -categories: tutorials ---- - - -Czy kiedykolwiek zastanawiałeś się, jak łatwo połączyć swoje zmiany bez niszczenia całego projektu? Oto szybki i prosty przewodnik. Zaczynamy! -Po pierwsze, powinieneś zainstalować i skonfigurować [GitExtensions](https://git-extensions-documentation.readthedocs.io/). Następnie otwórz swoje repozytorium. W moim przypadku zawiera ono dwie gałęzie: master i develop. Sprawdź obraz poniżej, aby to zobaczyć. - -
-
- {% include figure.liquid path="assets/img/posts/gitExtensions_1.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- {% include figure.liquid path="assets/img/posts/gitExtensions_2.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- - -Zawiera plik hello.html z tym samym edytowanym wierszem, więc nie wie, który wiersz powinien być użyty, gdy [conflict](https://www.atlassian.com/git/tutorials/using-branches/merge-conflicts) wystąpi. - -## Jak zmienić baze? - -Aby [przebazować](https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase) z gałęzi develop na gałąź master, aby zatwierdzenie na gałęzi develop było "nad" zatwierdzeniami z gałęzi master i tak aby zawierał wszystkie zatwierdzenia z gałęzi master także. Jak to zrobić? -Przełącz się na gałąź develop. Kliknij prawym przyciskiem myszy na niej. Wybierz opcję przełączenia gałęzi, a następnie wybierz gałąź develop. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_3.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Kiedy jesteś na gałęzi develop, wybierz, dla którego zatwierdzenia chcesz zmienić bazę. W moim przypadku jest to zatwierdzenie z gałęzi master o wiadomości "Hope it will work". - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_4.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Po kliknięciu "yes", aby zmienić bazę, powinieneś zobaczyć komunikat o błędzie, ale nie martw się, nie ma w tym nic złego z git. To tylko informacja dla Ciebie, że musisz rozwiązać kilka konfliktów. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_5.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Następnie kliknij OK i kontynuuj. Następnie powinieneś zobaczyć podobne okno poniżej: - - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_6.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Wybierz rozwiązanie konfliktów, a następnie powinno pojawić się kolejne okno. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_7.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -To okno jest oknem rozwiązywania konfliktów scalania. Możesz rozwiązać konflikty scalania na dwa sposoby. Szybki i łatwy drugi sposób, dla którego używasz narzędzia do porównywania różnic, jak [kdiff3](https://github.com/KDE/kdiff3). - -## Szybki i łatwy sposób rozwiązania konfliktów scalania. - -Możesz zastosować zmiany dla pliku hello.html, odrzucając swoje zmiany i korzystając z zmian z gałęzi master. Kliknij prawym przyciskiem myszy na pliku hello.html i wybierz (theirs), jak na obrazie poniżej: - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_8.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Jeśli chcesz nadpisać zmiany, zawsze możesz użyć opcji (ours). Następnie kliknij kontynuuj przebazowanie w głównym oknie przebazowania. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_9.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -W przypadku większej liczby plików lub konfliktów, będziesz musiał je rozwiązać później. Pamiętaj, że praca z większymi plikami lub zmianami może zająć trochę czasu. - -## Praca z narzędziem do porównywania różnic - -Tutaj zmodyfikowałem trochę historię repozytorium, więc możemy z tym pracować - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_10.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- - -Przebazuj ponownie i rozwijaj na gałąź master. - -1. Przełącz się na gałąź develop - -2. Wybierz pierwszy commit z gałęzi master z wiadomością "Some other changes" i kliknij prawym przyciskiem myszy na nim - -3. Przebazuj bieżącą gałąź na -> wybrany commit. - -Następnie zaczyna się magia. Pomijam kroki do okna konfliktów scalania, które są takie same jak powyżej. Wybierz otwórz je w kdiff3 lub innym narzędziu do scalania/porównywania. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_11.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Powinieneś zobaczyć okno podobne do poniższego: - - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_12.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Następnie występują trzy katalogi scalania: - -- ("A" jest traktowane jako starsza baza obu). - -- B - jest (ich) wersją gałęzi master - -- C - jest (nasze) w tym przypadku wersją gałęzi develop - - -Poniżej znajduje się okno wyjścia, które zawiera wynik scalania. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_13.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Możesz wybrać wersję pliku, którą chcesz zostawić i połączyć je. Możesz zobaczyć, że wybrałem jedną linię z C, jedną linię z A i jedną linię z B. Następnie zapisałem plik i kontynuowałem przebazowanie po rozwiązaniu konfliktów. To proste, ale czasami sytuacja może się skomplikować, więc uważaj. - -Poniżej widoczny jest wynik zmiany bazy: - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_14.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Stworzy to rozszerzenia plików .orig, więc zawsze możesz zobaczyć historię swoich zmian. - -Lepiej nie commitować tych plików do repozytorium. - -To wszystko! Mam nadzieję, że artykuł pomoże Ci w rozwiązywaniu konfliktów! +--- +layout: post +title: Jak rozwiązywać konfilkty przy pomocy GitExtensions? +date: 2022-08-06 16:40:16 +tags: git gitExtensions +categories: tutorials +--- + + +Czy kiedykolwiek zastanawiałeś się, jak łatwo połączyć swoje zmiany bez niszczenia całego projektu? Oto szybki i prosty przewodnik. Zaczynamy! +Po pierwsze, powinieneś zainstalować i skonfigurować [GitExtensions](https://git-extensions-documentation.readthedocs.io/). Następnie otwórz swoje repozytorium. W moim przypadku zawiera ono dwie gałęzie: master i develop. Sprawdź obraz poniżej, aby to zobaczyć. + +
+
+ {% include figure.liquid path="assets/img/posts/gitExtensions_1.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ {% include figure.liquid path="assets/img/posts/gitExtensions_2.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ + +Zawiera plik hello.html z tym samym edytowanym wierszem, więc nie wie, który wiersz powinien być użyty, gdy [conflict](https://www.atlassian.com/git/tutorials/using-branches/merge-conflicts) wystąpi. + +## Jak zmienić baze? + +Aby [przebazować](https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase) z gałęzi develop na gałąź master, aby zatwierdzenie na gałęzi develop było "nad" zatwierdzeniami z gałęzi master i tak aby zawierał wszystkie zatwierdzenia z gałęzi master także. Jak to zrobić? +Przełącz się na gałąź develop. Kliknij prawym przyciskiem myszy na niej. Wybierz opcję przełączenia gałęzi, a następnie wybierz gałąź develop. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_3.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Kiedy jesteś na gałęzi develop, wybierz, dla którego zatwierdzenia chcesz zmienić bazę. W moim przypadku jest to zatwierdzenie z gałęzi master o wiadomości "Hope it will work". + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_4.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Po kliknięciu "yes", aby zmienić bazę, powinieneś zobaczyć komunikat o błędzie, ale nie martw się, nie ma w tym nic złego z git. To tylko informacja dla Ciebie, że musisz rozwiązać kilka konfliktów. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_5.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Następnie kliknij OK i kontynuuj. Następnie powinieneś zobaczyć podobne okno poniżej: + + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_6.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Wybierz rozwiązanie konfliktów, a następnie powinno pojawić się kolejne okno. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_7.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +To okno jest oknem rozwiązywania konfliktów scalania. Możesz rozwiązać konflikty scalania na dwa sposoby. Szybki i łatwy drugi sposób, dla którego używasz narzędzia do porównywania różnic, jak [kdiff3](https://github.com/KDE/kdiff3). + +## Szybki i łatwy sposób rozwiązania konfliktów scalania. + +Możesz zastosować zmiany dla pliku hello.html, odrzucając swoje zmiany i korzystając z zmian z gałęzi master. Kliknij prawym przyciskiem myszy na pliku hello.html i wybierz (theirs), jak na obrazie poniżej: + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_8.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Jeśli chcesz nadpisać zmiany, zawsze możesz użyć opcji (ours). Następnie kliknij kontynuuj przebazowanie w głównym oknie przebazowania. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_9.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +W przypadku większej liczby plików lub konfliktów, będziesz musiał je rozwiązać później. Pamiętaj, że praca z większymi plikami lub zmianami może zająć trochę czasu. + +## Praca z narzędziem do porównywania różnic + +Tutaj zmodyfikowałem trochę historię repozytorium, więc możemy z tym pracować + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_10.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ + +Przebazuj ponownie i rozwijaj na gałąź master. + +1. Przełącz się na gałąź develop + +2. Wybierz pierwszy commit z gałęzi master z wiadomością "Some other changes" i kliknij prawym przyciskiem myszy na nim + +3. Przebazuj bieżącą gałąź na -> wybrany commit. + +Następnie zaczyna się magia. Pomijam kroki do okna konfliktów scalania, które są takie same jak powyżej. Wybierz otwórz je w kdiff3 lub innym narzędziu do scalania/porównywania. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_11.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Powinieneś zobaczyć okno podobne do poniższego: + + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_12.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Następnie występują trzy katalogi scalania: + +- ("A" jest traktowane jako starsza baza obu). + +- B - jest (ich) wersją gałęzi master + +- C - jest (nasze) w tym przypadku wersją gałęzi develop + + +Poniżej znajduje się okno wyjścia, które zawiera wynik scalania. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_13.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Możesz wybrać wersję pliku, którą chcesz zostawić i połączyć je. Możesz zobaczyć, że wybrałem jedną linię z C, jedną linię z A i jedną linię z B. Następnie zapisałem plik i kontynuowałem przebazowanie po rozwiązaniu konfliktów. To proste, ale czasami sytuacja może się skomplikować, więc uważaj. + +Poniżej widoczny jest wynik zmiany bazy: + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_14.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Stworzy to rozszerzenia plików .orig, więc zawsze możesz zobaczyć historię swoich zmian. + +Lepiej nie commitować tych plików do repozytorium. + +To wszystko! Mam nadzieję, że artykuł pomoże Ci w rozwiązywaniu konfliktów! diff --git a/_i18n/pl/_posts/2023-10-23-how-to-store-big-binary-files-with-git-lfs.md b/_i18n/pl/_posts/2023-10-23-how-to-store-big-binary-files-with-git-lfs.md index b430d9f7..9c619672 100644 --- a/_i18n/pl/_posts/2023-10-23-how-to-store-big-binary-files-with-git-lfs.md +++ b/_i18n/pl/_posts/2023-10-23-how-to-store-big-binary-files-with-git-lfs.md @@ -1,313 +1,313 @@ ---- -layout: post -title: Jak przechowywać duże pliki binarne z użyciem git lfs na Google Drive lub One Drive? -date: 2023-10-23 16:40:16 -tags: git git-lfs git-extensions unity unreal-engine -categories: tutorials ---- - -# Adapter transferu - -Sugeruję połączenie git lfs z niestandardowym adapterem transferu. Zgodnie z dokumentacją git-lfs: - - -> Git LFS obsługuje wiele sposobów przesyłania (wgrywania i pobierania) plików. -> W podstawowych aplikacjach klienckich używa się żądania HTTP za pośrednictwem adresu URL zwróconego z API LFS dla danego obiektu. -> Klient obsługuje również rozszerzenia umożliwiające wznowienie pobierania (za pośrednictwem nagłówków Range) i przesyłania. - -# Przykłady użycia - -Wykorzystałem ten sposób do przechowywania plików multimedialnych w moim projekcie i do rozwoju oprogramowania w projektach związanych z grami. -Jestem pewien, że i Ty możesz to zrobić. W większości przypadków lubię to stosować do: -- projektów związanych z tworzeniem gier w silnikach takich jak Unity i Unreal Engine. -- przechowywania dbdumps -- przechowywania dużych plików multimedialnych (w razie potrzeby) - -Zawsze istnieje sposób, aby to zrobić również dla innych rodzajów projektów. - -W poniższym przykładzie będę używał gitlab, google drive i innych narzędzi. - -# Konfiguracja Gitlab-a - -Po pierwsze, musisz wyłączyć domyślną usługę lfs w gitlabie. Jest to bardzo dobrze udokumentowana funkcja w oficjalnej dokumentacji -[Gitlab](https://docs.gitlab.com/ee/topics/git/lfs), ale nie ma zbyt dużo informacji na temat tego, jak ją wyłączyć. - -Jest to trochę skomplikowane i niezbyt przyjazne dla użytkownika, ale oczywiście musisz wybrać swoje repozytorium i wejść w ustawienia. - -
-
- {% include figure.liquid path="assets/img/posts/settings_gitlab.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- {% include figure.liquid path="assets/img/posts/disable_gitlab_lfs_example.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- -Istnieje również inny sposób za pomocą wiersza poleceń gitlab oraz dla narzędzi CI za pomocą zmiennych środowiskowych, ale nie będę tego omawiał, trzymajmy to proste. -Jeśli gitlab lfs jest wyłączony na zdalnym serwerze, możesz zacząć od konfiguracji lokalnej. - -# Konfiguracja lokalnego repozytorium - -Będziesz potrzebował nowego repozytorium lub możesz użyć istniejącego. Sugeruję rozpoczęcie od stanu początkowego, abyś mógł skorzystać z prostego przewodnika konfiguracyjnego poniżej. - - -``` -git init -``` - -Dodaj również link do serwera zdalnego. Można to zrobić po konfiguracji lub później. -Dla lfs z gitlabem możesz sugerować się zgodnie z prostym samouczkiem [link do git](https://docs.gitlab.com/ee/gitlab-basics/start-using-git.html#add-a-remote) - -# Konfiguracja lfs - -Pobierz narzędzie adaptera lfs z [dostępnych wydań](https://github.com/sinbad/lfs-folderstore/releases/tag/v1.0.1). - - -
- {% include figure.liquid path="assets/img/posts/OIP.jpg" class="img-fluid rounded z-depth-1" width="50%" zoomable=true %} -
- -Pobierz, rozpakuj, zainstaluj je -w dobrze znanej lokalizacji. Na przykład utwórz nowy folder na swoim głównym dysku roboczym, np. tak: ```C:\Tools```, więc pełna ścieżka do narzędzia -będzie wyglądać tak: ```C:\Tools\lfs-folderstore.exe```. - - -Aby skonfigurować repozytorium z lfs, dodaj plik .gitattributes w swoim repozytorium. -Przykłady można znaleźć pod tym [linkiem](https://github.com/gitattributes/gitattributes). - -## Unity .gitattributes - -``` -## in root - -*.cs diff=csharp text -*.cginc text -*.shader text - -*.mat merge=unityyamlmerge eol=lf -*.anim merge=unityyamlmerge eol=lf -*.unity merge=unityyamlmerge eol=lf -*.prefab merge=unityyamlmerge eol=lf -*.physicsMaterial2D merge=unityyamlmerge eol=lf -*.physicMaterial merge=unityyamlmerge eol=lf -*.asset merge=unityyamlmerge eol=lf -text -*.meta merge=unityyamlmerge eol=lf -*.controller merge=unityyamlmerge eol=lf - -## git-lfs ## - -#Image -*.jpg filter=lfs diff=lfs merge=lfs -text -*.jpeg filter=lfs diff=lfs merge=lfs -text -*.png filter=lfs diff=lfs merge=lfs -text -*.gif filter=lfs diff=lfs merge=lfs -text -*.psd filter=lfs diff=lfs merge=lfs -text -*.ai filter=lfs diff=lfs merge=lfs -text -*.tif filter=lfs diff=lfs merge=lfs -text - -#Audio -*.mp3 filter=lfs diff=lfs merge=lfs -text -*.wav filter=lfs diff=lfs merge=lfs -text -*.ogg filter=lfs diff=lfs merge=lfs -text -#Wwise -*.bnk filter=lfs diff=lfs merge=lfs -text - -#Video -*.mp4 filter=lfs diff=lfs merge=lfs -text -*.mov filter=lfs diff=lfs merge=lfs -text - -#3D Object -*.FBX filter=lfs diff=lfs merge=lfs -text -*.fbx filter=lfs diff=lfs merge=lfs -text -*.blend filter=lfs diff=lfs merge=lfs -text -*.obj filter=lfs diff=lfs merge=lfs -text - -#ETC -*.a filter=lfs diff=lfs merge=lfs -text -*.exr filter=lfs diff=lfs merge=lfs -text -*.tga filter=lfs diff=lfs merge=lfs -text -*.zip filter=lfs diff=lfs merge=lfs -text -*.dll filter=lfs diff=lfs merge=lfs -text -*.unitypackage filter=lfs diff=lfs merge=lfs -text -*.aif filter=lfs diff=lfs merge=lfs -text -*.ttf filter=lfs diff=lfs merge=lfs -text -*.rns filter=lfs diff=lfs merge=lfs -text -*.reason filter=lfs diff=lfs merge=lfs -text -*.lxo filter=lfs diff=lfs merge=lfs -text - -``` - -## Unreal Engine .gitattributes -``` -## Unreal Engine -## Auto detect text files and perform LF normalization ## - -* text=auto - -# UE file types -*.uasset filter=lfs diff=lfs merge=lfs -text -*.umap filter=lfs diff=lfs merge=lfs -text -*.udk filter=lfs diff=lfs merge=lfs -text -*.upk filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# 2D formats -# Read more in: https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/Textures/Importing/ - -# Recommended use: -*.[tT][gG][aA] filter=lfs diff=lfs merge=lfs -text -*.[pP][nN][gG] filter=lfs diff=lfs merge=lfs -text -*.[bB][mM][pP] filter=lfs diff=lfs merge=lfs -text - -# Can also be used: -*.[fF][lL[oO][aA][tT] filter=lfs diff=lfs merge=lfs -text -*.[jJ][pP][eE][gG] filter=lfs diff=lfs merge=lfs -text -*.[jJ][pP][gG] filter=lfs diff=lfs merge=lfs -text -*.[pP][cC][xX] filter=lfs diff=lfs merge=lfs -text -*.[pP][sS][dD] filter=lfs diff=lfs merge=lfs -text -*.[xX][cC][fF] filter=lfs diff=lfs merge=lfs -text -*.[tT][iI][fF] filter=lfs diff=lfs merge=lfs -text -*.[tT][iI][fF][fF] filter=lfs diff=lfs merge=lfs -text - -# Other supported formats: -*.[hH][dD][rR] filter=lfs diff=lfs merge=lfs -text -*.[dD][dD][sS] filter=lfs diff=lfs merge=lfs -text -*.[eE][xX][rR] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# 3D formats - -# Always recommended to use: -# The UE4 FBX import pipeline uses FBX 2018 -*.[fF][bB][xX] filter=lfs diff=lfs merge=lfs -text - -# Can also be used: -*.[oO][bB][jJ] filter=lfs diff=lfs merge=lfs -text - -# Other supported formats: -*.[aA][bB][cC] filter=lfs diff=lfs merge=lfs -text -*.[sS][rR][tT] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# Audio formats -# Read more in: https://docs.unrealengine.com/4.27/en-US/WorkingWithAudio/Overview/#:~:text=Unreal%20Engine%204%20(UE4)%20supports,16%2Dbit%20format%20PCM%20files. - -# Always recommended to use: -*.[wW][aA][vV] filter=lfs diff=lfs merge=lfs -text - -# Can also be used: -*.[aA][iI][fF][fF] filter=lfs diff=lfs merge=lfs -text -*.[oO][gG][gG] filter=lfs diff=lfs merge=lfs -text -*.[fF][lL][aA][cC] filter=lfs diff=lfs merge=lfs -text - -# Not recommended to use, but supported: -*.[mM][pP]3 filter=lfs diff=lfs merge=lfs -text -*.[wW][mM][aA] filter=lfs diff=lfs merge=lfs -text -*.[aA][cC]3 filter=lfs diff=lfs merge=lfs -text -*.[aA][mM][rR] filter=lfs diff=lfs merge=lfs -text -*.[aA][iI][fF] filter=lfs diff=lfs merge=lfs -text -*.[aA][uU] filter=lfs diff=lfs merge=lfs -text -*.[cC][dD][dD][aA] filter=lfs diff=lfs merge=lfs -text -*.[cC][aA][fF] filter=lfs diff=lfs merge=lfs -text -*.[bB][wW][fF] filter=lfs diff=lfs merge=lfs -text -*.[aA][dD][tT][sS] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# Video formats -# Read more in: https://docs.unrealengine.com/5.0/en-US/media-framework-technical-reference-for-unreal-engine/ - -# Always recommended to use, supports all platforms: -# For the best compatibility and performance, it is recommended to use H.264 encoded MP4 (.mp4) container files. -*.[mM][pP]4 filter=lfs diff=lfs merge=lfs -text - -# Can also be used, only some platforms are supported: -*.3[gG]2 filter=lfs diff=lfs merge=lfs -text -*.3[gG][pP] filter=lfs diff=lfs merge=lfs -text -*.3[gG][pP]2 filter=lfs diff=lfs merge=lfs -text -*.3[gG][pP][pP] filter=lfs diff=lfs merge=lfs -text -*.[mM]4[aA] filter=lfs diff=lfs merge=lfs -text -*.[mM]4[vV] filter=lfs diff=lfs merge=lfs -text -*.[mM][o][vV] filter=lfs diff=lfs merge=lfs -text -*.[aA][sS][fF] filter=lfs diff=lfs merge=lfs -text -*.[aA][vV][iI] filter=lfs diff=lfs merge=lfs -text -*.[wW][mM][vV] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# Fonts -# Read more in: https://docs.unrealengine.com/5.0/en-US/importing-fonts-in-unreal-engine/ - -*.[tT][tT][fF] filter=lfs diff=lfs merge=lfs -text -*.[oO][tT][fF] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# Documents -*.[cC][sS][vV] filter=lfs diff=lfs merge=lfs -text - -``` -# Konfiguracja Google Drive - -Jeśli repozytorium jest gotowe, będziesz potrzebować jakiegoś rodzaju przestrzeni dyskowej, aby to działało. Aby w pełni zintegrować to z Google Drive, użyj klienta Google Drive [Pobierz](https://www.google.com/drive/download/). -Zainstaluj go, zaloguj się, aby można było utworzyć folder do przechowywania wszystkich dużych danych binarnych. - -Po zalogowaniu powinieneś zobaczyć swój zamontowany folder w Finderze, jeśli używasz Maca, lub w Exploratorze Windows, jako oddzielony dysk. Otwórz go i utwórz nowy folder o nazwie -``binary-lfs``. Ta nazwa będzie używana do przechowywania wszystkich danych binarnych dla Twojego projektu w konfiguracji lfs. - -# Integracja konfiguracji Git - -Jeśli wszystko zostało wykonane prawidłowo, teraz nadszedł czas, aby połączyć git-lfs z naszym narzędziem i Google Drive. - -Użyłem mojego ulubionego otwartoźródłowego oprogramowania [GitExtension](https://git-extensions-documentation.readthedocs.io/) jako odniesienia do integracji, ale możesz użyć terminala za pomocą podejścia z konfiguracją git config -lub dowolnego edytora tekstu. W przypadku korzystania z edytora tekstu otwórz plik konfiguracyjny w ukrytym folderze .git w głównym folderze Twojego projektu repozytorium. - -Aby otworzyć konfigurację Twojego repozytorium github, wybierz następującą opcję: - - -
- {% include figure.liquid path="assets/img/posts/integration_gitextension.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Otwórz go i dodaj następujące linie. - - -``` -[lfs "customtransfer.lfs-folder"] - path = C:\\Tools\\lfs-folderstore.exe - args = 'I:\\My drive\\binary-lfs' -[lfs] - standalonetransferagent = lfs-folder - repositoryformatversion = 0 -``` - - -Następnie, pamiętaj, aby posortować pliki LFS i skopiować zawartość skonfigurowanego wspólnego folderu, używając następującej komendy - -```bash -git reset --hard master -``` -lub jeśli korzystasz z nowego repozytorium, po prostu je wyślij - -``` -git push -u origin main -``` - -# Rozwiązywanie problemów - -Czasami mogą pojawić się problemy z Twoją siecią lub z git lfs. W przypadku błędów smudge lub innych problemów można wypróbować następujące triki: - -- spróbuj użyć lepszego połączenia internetowego, słaby pasmo sieciowe nie pomaga -- zrestartuj komputer -- użyj ``git lfs fetch --all`` pobiera pliki git lfs dla WSZYSTKICH zdalnych gałęzi -- przenieś katalog cache Google Drive lub One Drive do nowego folderu i spróbuj ponownie pobrać dane - -# Bibliografia i źródła - -- [Lfs folderstore repo](https://github.com/sinbad/lfs-folderstore) -- [Google Drive](https://www.google.com/drive/download/) -- [Gitlab Docs](https://docs.gitlab.com/) - +--- +layout: post +title: Jak przechowywać duże pliki binarne z użyciem git lfs na Google Drive lub One Drive? +date: 2023-10-23 16:40:16 +tags: git git-lfs git-extensions unity unreal-engine +categories: tutorials +--- + +# Adapter transferu + +Sugeruję połączenie git lfs z niestandardowym adapterem transferu. Zgodnie z dokumentacją git-lfs: + + +> Git LFS obsługuje wiele sposobów przesyłania (wgrywania i pobierania) plików. +> W podstawowych aplikacjach klienckich używa się żądania HTTP za pośrednictwem adresu URL zwróconego z API LFS dla danego obiektu. +> Klient obsługuje również rozszerzenia umożliwiające wznowienie pobierania (za pośrednictwem nagłówków Range) i przesyłania. + +# Przykłady użycia + +Wykorzystałem ten sposób do przechowywania plików multimedialnych w moim projekcie i do rozwoju oprogramowania w projektach związanych z grami. +Jestem pewien, że i Ty możesz to zrobić. W większości przypadków lubię to stosować do: +- projektów związanych z tworzeniem gier w silnikach takich jak Unity i Unreal Engine. +- przechowywania dbdumps +- przechowywania dużych plików multimedialnych (w razie potrzeby) + +Zawsze istnieje sposób, aby to zrobić również dla innych rodzajów projektów. + +W poniższym przykładzie będę używał gitlab, google drive i innych narzędzi. + +# Konfiguracja Gitlab-a + +Po pierwsze, musisz wyłączyć domyślną usługę lfs w gitlabie. Jest to bardzo dobrze udokumentowana funkcja w oficjalnej dokumentacji +[Gitlab](https://docs.gitlab.com/ee/topics/git/lfs), ale nie ma zbyt dużo informacji na temat tego, jak ją wyłączyć. + +Jest to trochę skomplikowane i niezbyt przyjazne dla użytkownika, ale oczywiście musisz wybrać swoje repozytorium i wejść w ustawienia. + +
+
+ {% include figure.liquid path="assets/img/posts/settings_gitlab.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ {% include figure.liquid path="assets/img/posts/disable_gitlab_lfs_example.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ +Istnieje również inny sposób za pomocą wiersza poleceń gitlab oraz dla narzędzi CI za pomocą zmiennych środowiskowych, ale nie będę tego omawiał, trzymajmy to proste. +Jeśli gitlab lfs jest wyłączony na zdalnym serwerze, możesz zacząć od konfiguracji lokalnej. + +# Konfiguracja lokalnego repozytorium + +Będziesz potrzebował nowego repozytorium lub możesz użyć istniejącego. Sugeruję rozpoczęcie od stanu początkowego, abyś mógł skorzystać z prostego przewodnika konfiguracyjnego poniżej. + + +``` +git init +``` + +Dodaj również link do serwera zdalnego. Można to zrobić po konfiguracji lub później. +Dla lfs z gitlabem możesz sugerować się zgodnie z prostym samouczkiem [link do git](https://docs.gitlab.com/ee/gitlab-basics/start-using-git.html#add-a-remote) + +# Konfiguracja lfs + +Pobierz narzędzie adaptera lfs z [dostępnych wydań](https://github.com/sinbad/lfs-folderstore/releases/tag/v1.0.1). + + +
+ {% include figure.liquid path="assets/img/posts/OIP.jpg" class="img-fluid rounded z-depth-1" width="50%" zoomable=true %} +
+ +Pobierz, rozpakuj, zainstaluj je +w dobrze znanej lokalizacji. Na przykład utwórz nowy folder na swoim głównym dysku roboczym, np. tak: ```C:\Tools```, więc pełna ścieżka do narzędzia +będzie wyglądać tak: ```C:\Tools\lfs-folderstore.exe```. + + +Aby skonfigurować repozytorium z lfs, dodaj plik .gitattributes w swoim repozytorium. +Przykłady można znaleźć pod tym [linkiem](https://github.com/gitattributes/gitattributes). + +## Unity .gitattributes + +``` +## in root + +*.cs diff=csharp text +*.cginc text +*.shader text + +*.mat merge=unityyamlmerge eol=lf +*.anim merge=unityyamlmerge eol=lf +*.unity merge=unityyamlmerge eol=lf +*.prefab merge=unityyamlmerge eol=lf +*.physicsMaterial2D merge=unityyamlmerge eol=lf +*.physicMaterial merge=unityyamlmerge eol=lf +*.asset merge=unityyamlmerge eol=lf -text +*.meta merge=unityyamlmerge eol=lf +*.controller merge=unityyamlmerge eol=lf + +## git-lfs ## + +#Image +*.jpg filter=lfs diff=lfs merge=lfs -text +*.jpeg filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.gif filter=lfs diff=lfs merge=lfs -text +*.psd filter=lfs diff=lfs merge=lfs -text +*.ai filter=lfs diff=lfs merge=lfs -text +*.tif filter=lfs diff=lfs merge=lfs -text + +#Audio +*.mp3 filter=lfs diff=lfs merge=lfs -text +*.wav filter=lfs diff=lfs merge=lfs -text +*.ogg filter=lfs diff=lfs merge=lfs -text +#Wwise +*.bnk filter=lfs diff=lfs merge=lfs -text + +#Video +*.mp4 filter=lfs diff=lfs merge=lfs -text +*.mov filter=lfs diff=lfs merge=lfs -text + +#3D Object +*.FBX filter=lfs diff=lfs merge=lfs -text +*.fbx filter=lfs diff=lfs merge=lfs -text +*.blend filter=lfs diff=lfs merge=lfs -text +*.obj filter=lfs diff=lfs merge=lfs -text + +#ETC +*.a filter=lfs diff=lfs merge=lfs -text +*.exr filter=lfs diff=lfs merge=lfs -text +*.tga filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.dll filter=lfs diff=lfs merge=lfs -text +*.unitypackage filter=lfs diff=lfs merge=lfs -text +*.aif filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.rns filter=lfs diff=lfs merge=lfs -text +*.reason filter=lfs diff=lfs merge=lfs -text +*.lxo filter=lfs diff=lfs merge=lfs -text + +``` + +## Unreal Engine .gitattributes +``` +## Unreal Engine +## Auto detect text files and perform LF normalization ## + +* text=auto + +# UE file types +*.uasset filter=lfs diff=lfs merge=lfs -text +*.umap filter=lfs diff=lfs merge=lfs -text +*.udk filter=lfs diff=lfs merge=lfs -text +*.upk filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# 2D formats +# Read more in: https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/Textures/Importing/ + +# Recommended use: +*.[tT][gG][aA] filter=lfs diff=lfs merge=lfs -text +*.[pP][nN][gG] filter=lfs diff=lfs merge=lfs -text +*.[bB][mM][pP] filter=lfs diff=lfs merge=lfs -text + +# Can also be used: +*.[fF][lL[oO][aA][tT] filter=lfs diff=lfs merge=lfs -text +*.[jJ][pP][eE][gG] filter=lfs diff=lfs merge=lfs -text +*.[jJ][pP][gG] filter=lfs diff=lfs merge=lfs -text +*.[pP][cC][xX] filter=lfs diff=lfs merge=lfs -text +*.[pP][sS][dD] filter=lfs diff=lfs merge=lfs -text +*.[xX][cC][fF] filter=lfs diff=lfs merge=lfs -text +*.[tT][iI][fF] filter=lfs diff=lfs merge=lfs -text +*.[tT][iI][fF][fF] filter=lfs diff=lfs merge=lfs -text + +# Other supported formats: +*.[hH][dD][rR] filter=lfs diff=lfs merge=lfs -text +*.[dD][dD][sS] filter=lfs diff=lfs merge=lfs -text +*.[eE][xX][rR] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# 3D formats + +# Always recommended to use: +# The UE4 FBX import pipeline uses FBX 2018 +*.[fF][bB][xX] filter=lfs diff=lfs merge=lfs -text + +# Can also be used: +*.[oO][bB][jJ] filter=lfs diff=lfs merge=lfs -text + +# Other supported formats: +*.[aA][bB][cC] filter=lfs diff=lfs merge=lfs -text +*.[sS][rR][tT] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# Audio formats +# Read more in: https://docs.unrealengine.com/4.27/en-US/WorkingWithAudio/Overview/#:~:text=Unreal%20Engine%204%20(UE4)%20supports,16%2Dbit%20format%20PCM%20files. + +# Always recommended to use: +*.[wW][aA][vV] filter=lfs diff=lfs merge=lfs -text + +# Can also be used: +*.[aA][iI][fF][fF] filter=lfs diff=lfs merge=lfs -text +*.[oO][gG][gG] filter=lfs diff=lfs merge=lfs -text +*.[fF][lL][aA][cC] filter=lfs diff=lfs merge=lfs -text + +# Not recommended to use, but supported: +*.[mM][pP]3 filter=lfs diff=lfs merge=lfs -text +*.[wW][mM][aA] filter=lfs diff=lfs merge=lfs -text +*.[aA][cC]3 filter=lfs diff=lfs merge=lfs -text +*.[aA][mM][rR] filter=lfs diff=lfs merge=lfs -text +*.[aA][iI][fF] filter=lfs diff=lfs merge=lfs -text +*.[aA][uU] filter=lfs diff=lfs merge=lfs -text +*.[cC][dD][dD][aA] filter=lfs diff=lfs merge=lfs -text +*.[cC][aA][fF] filter=lfs diff=lfs merge=lfs -text +*.[bB][wW][fF] filter=lfs diff=lfs merge=lfs -text +*.[aA][dD][tT][sS] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# Video formats +# Read more in: https://docs.unrealengine.com/5.0/en-US/media-framework-technical-reference-for-unreal-engine/ + +# Always recommended to use, supports all platforms: +# For the best compatibility and performance, it is recommended to use H.264 encoded MP4 (.mp4) container files. +*.[mM][pP]4 filter=lfs diff=lfs merge=lfs -text + +# Can also be used, only some platforms are supported: +*.3[gG]2 filter=lfs diff=lfs merge=lfs -text +*.3[gG][pP] filter=lfs diff=lfs merge=lfs -text +*.3[gG][pP]2 filter=lfs diff=lfs merge=lfs -text +*.3[gG][pP][pP] filter=lfs diff=lfs merge=lfs -text +*.[mM]4[aA] filter=lfs diff=lfs merge=lfs -text +*.[mM]4[vV] filter=lfs diff=lfs merge=lfs -text +*.[mM][o][vV] filter=lfs diff=lfs merge=lfs -text +*.[aA][sS][fF] filter=lfs diff=lfs merge=lfs -text +*.[aA][vV][iI] filter=lfs diff=lfs merge=lfs -text +*.[wW][mM][vV] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# Fonts +# Read more in: https://docs.unrealengine.com/5.0/en-US/importing-fonts-in-unreal-engine/ + +*.[tT][tT][fF] filter=lfs diff=lfs merge=lfs -text +*.[oO][tT][fF] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# Documents +*.[cC][sS][vV] filter=lfs diff=lfs merge=lfs -text + +``` +# Konfiguracja Google Drive + +Jeśli repozytorium jest gotowe, będziesz potrzebować jakiegoś rodzaju przestrzeni dyskowej, aby to działało. Aby w pełni zintegrować to z Google Drive, użyj klienta Google Drive [Pobierz](https://www.google.com/drive/download/). +Zainstaluj go, zaloguj się, aby można było utworzyć folder do przechowywania wszystkich dużych danych binarnych. + +Po zalogowaniu powinieneś zobaczyć swój zamontowany folder w Finderze, jeśli używasz Maca, lub w Exploratorze Windows, jako oddzielony dysk. Otwórz go i utwórz nowy folder o nazwie +``binary-lfs``. Ta nazwa będzie używana do przechowywania wszystkich danych binarnych dla Twojego projektu w konfiguracji lfs. + +# Integracja konfiguracji Git + +Jeśli wszystko zostało wykonane prawidłowo, teraz nadszedł czas, aby połączyć git-lfs z naszym narzędziem i Google Drive. + +Użyłem mojego ulubionego otwartoźródłowego oprogramowania [GitExtension](https://git-extensions-documentation.readthedocs.io/) jako odniesienia do integracji, ale możesz użyć terminala za pomocą podejścia z konfiguracją git config +lub dowolnego edytora tekstu. W przypadku korzystania z edytora tekstu otwórz plik konfiguracyjny w ukrytym folderze .git w głównym folderze Twojego projektu repozytorium. + +Aby otworzyć konfigurację Twojego repozytorium github, wybierz następującą opcję: + + +
+ {% include figure.liquid path="assets/img/posts/integration_gitextension.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Otwórz go i dodaj następujące linie. + + +``` +[lfs "customtransfer.lfs-folder"] + path = C:\\Tools\\lfs-folderstore.exe + args = 'I:\\My drive\\binary-lfs' +[lfs] + standalonetransferagent = lfs-folder + repositoryformatversion = 0 +``` + + +Następnie, pamiętaj, aby posortować pliki LFS i skopiować zawartość skonfigurowanego wspólnego folderu, używając następującej komendy + +```bash +git reset --hard master +``` +lub jeśli korzystasz z nowego repozytorium, po prostu je wyślij + +``` +git push -u origin main +``` + +# Rozwiązywanie problemów + +Czasami mogą pojawić się problemy z Twoją siecią lub z git lfs. W przypadku błędów smudge lub innych problemów można wypróbować następujące triki: + +- spróbuj użyć lepszego połączenia internetowego, słaby pasmo sieciowe nie pomaga +- zrestartuj komputer +- użyj ``git lfs fetch --all`` pobiera pliki git lfs dla WSZYSTKICH zdalnych gałęzi +- przenieś katalog cache Google Drive lub One Drive do nowego folderu i spróbuj ponownie pobrać dane + +# Bibliografia i źródła + +- [Lfs folderstore repo](https://github.com/sinbad/lfs-folderstore) +- [Google Drive](https://www.google.com/drive/download/) +- [Gitlab Docs](https://docs.gitlab.com/) + diff --git a/_pages/projects.md b/_pages/projects.md index 4a68d62d..13cc4f2d 100644 --- a/_pages/projects.md +++ b/_pages/projects.md @@ -5,7 +5,7 @@ description: descriptions.projects permalink: /projects/ nav: true nav_order: 3 -display_categories: [work, fun] +display_categories: [game-dev, web-development, desktop] horizontal: false --- diff --git a/_projects/1_project.md b/_projects/1_project.md index 19607825..c387be39 100644 --- a/_projects/1_project.md +++ b/_projects/1_project.md @@ -4,7 +4,7 @@ title: projects.titles.project1 description: projects.descriptions.project1 img: assets/img/12.jpg importance: 1 -category: work +category: game-dev --- {% translate_file _projects/1_project.md %} diff --git a/_projects/2_project.md b/_projects/2_project.md index 7bf4242c..9dbc2304 100644 --- a/_projects/2_project.md +++ b/_projects/2_project.md @@ -4,8 +4,7 @@ title: projects.titles.project2 description: projects.descriptions.project2 img: assets/img/3.jpg importance: 2 -category: work -giscus_comments: true +category: game-dev --- {% translate_file _projects/2_project.md %} diff --git a/_projects/3_project.md b/_projects/3_project.md index 71f1fd4b..2fbe35e1 100644 --- a/_projects/3_project.md +++ b/_projects/3_project.md @@ -5,7 +5,7 @@ description: projects.descriptions.project3 img: assets/img/7.jpg redirect: https://unsplash.com importance: 3 -category: work +category: desktop --- {% translate_file _projects/3_project.md %} diff --git a/_projects/4_project.md b/_projects/4_project.md index 713564f0..79987389 100644 --- a/_projects/4_project.md +++ b/_projects/4_project.md @@ -4,7 +4,7 @@ title: projects.titles.project4 description: projects.descriptions.project4 img: importance: 3 -category: fun +category: web-development --- {% translate_file _projects/4_project.md %} diff --git a/_projects/5_project.md b/_projects/5_project.md index cffe20a3..b82e12cf 100644 --- a/_projects/5_project.md +++ b/_projects/5_project.md @@ -4,7 +4,7 @@ title: projects.titles.project5 description: projects.descriptions.project5 img: assets/img/1.jpg importance: 3 -category: fun +category: desktop --- {% translate_file _projects/5_project.md %} diff --git a/_projects/6_project.md b/_projects/6_project.md index baa15341..f57a5f90 100644 --- a/_projects/6_project.md +++ b/_projects/6_project.md @@ -4,7 +4,7 @@ title: projects.titles.project6 description: projects.descriptions.project6 img: importance: 4 -category: fun +category: game-dev --- {% translate_file _projects/6_project.md %}