Jump to content

Infrastructure/Git/Simple Workflow: Difference between revisions

From KDE Community Wiki
Odysseus (talk | contribs)
Skierpage (talk | contribs)
nuke this old 2016 page that shows up high in web searches
Tag: Replaced
 
(38 intermediate revisions by 6 users not shown)
Line 1: Line 1:
== Simple KDE Git Workflow ==
{{Out of date|This page that shows up high in search results in 2025 was last updated in 2016 and marked "THIS IS AN INCOMPLETE DRAFT!!!". Instead read '''[[Infrastructure/GitLab]]'''.}}


This Git Workflow is designed to be followed by a new Git user who needs a simple workflow for bug fixes and new features in a manner similar to the old SVN workflow.
:''View history if you want to see what it said, but don't bother discussing it.''
 
Note that each module may choose to adopt a more complex workflow and you should check with your modules maintainers if this is the case.
 
The worked examples given will be for an imaginary app called KFoo in a git.kde.org repository called 'kfoo'.
 
== Set-up ==
 
This section documents how to set up Git and your code repository for development.
 
=== Configure Git ===
 
Follow the [[Infrastructure/Git/Configuration|KDE Git Configuration]] page.
 
=== Clone your repository ===
 
You need to copy your repository from git.kde.org into your local KDE source directory.  In Git this process is called cloning.
 
To clone your project repository:
 
cd your/source/dir
git clone kde:<project>
 
In our KFoo example:
 
git clone kde:kfoo
 
See the [[Getting_Started/Build/Environment|KDE Build Environment]] page for advice on structuring your source directory.
 
If you have a slow internet connection then you may prefer to [[Getting_Started/Sources/Snapshots|download a snapshot tarball]] to bootstrap your clone.  You can copy the required command from the projects.kde.org Repository page for your project, but it will be of the form:
 
wget -c http://anongit.kde.org/<project>/<project>-latest.tar.gz
 
== Basic Actions ==
 
This section documents basic actions that are performed within your workflow.
 
See also the [[Infrastructure/Git/Recipes|KDE Git Recipes]] page.
 
=== Create a Work Branch ===
 
By default when you first create a repository clone there is only a single local branch called 'master'.  It is not good practice to do development in master, it is better kept clean for reference.  Instead all work should be performed in a new local branch, even bug fixes.
 
To see what local branches you have:
 
git branch
 
To see all local and remote branches:
 
git branch -a
 
To create a new local branch:
 
git branch <new-branch>
git checkout <new-branch>
 
This will create a new branch based on whatever local branch you were already in, i.e. that includes all the history of the original branch, which can be useful in building a hierarchy of dependent changes.
 
You may prefer to base your new branch on a remote branch such as the master branch of the central repository so you can integrate any new development.  This is called 'tracking' and is recommended for most branches:
 
git branch --track <local-branch> <remote-branch>
 
For our KFoo example:
 
git branch --track new-bar-feature origin/master
 
=== Commit Your Changes ===
 
=== Push Your Changes ===
 
== Local Bug Fixing ==
 
This example workflow is for locally fixing bugs in both the stable and unstable branches and pushing them to the central repository.
 
This workflow is only recommended for small fixes or where you are the only developer on a project.
 
== Local Feature Development ==
 
This example workflow is for locally working on new features in unstable branch and pushing them to the central repository.
 
This workflow is only recommended for small features or where you are the only developer on a project.
 
== Remote Feature Development ==
 
This example workflow is for working on new features in a feature branch hosted on the central repository.
 
This workflow is recommended for larger features or where there are many developers on a project.

Latest revision as of 02:05, 21 February 2025

 
This article or section is out of date.
Reason: This page that shows up high in search results in 2025 was last updated in 2016 and marked "THIS IS AN INCOMPLETE DRAFT!!!". Instead read Infrastructure/GitLab. (Discuss in Talk:Infrastructure/Git/Simple Workflow)
View history if you want to see what it said, but don't bother discussing it.