Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
devel:git [2018/06/02 01:51] – bluesabre | devel:git [2018/06/29 10:56] (current) – bluesabre | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Xubuntu Git Workflow ====== | ====== Xubuntu Git Workflow ====== | ||
- | The Xubuntu team uses Git for all version-controlled projects. While Launchpad' | + | The Xubuntu team uses Git for all version-controlled projects. While Launchpad' |
If this is your first time working with Git, the Xfce Wiki has a great guide for getting started and some typical use cases. \\ | If this is your first time working with Git, the Xfce Wiki has a great guide for getting started and some typical use cases. \\ | ||
https:// | https:// | ||
+ | |||
+ | //**Please note that this change has nothing to do with GitHub and recent related news. GitHub is a different service than Launchpad with the only similarity being the usage of the Git VCS.**// | ||
===== Why Git? ===== | ===== Why Git? ===== | ||
- | Xubuntu and it' | + | Xubuntu and its various projects have used Bazaar since the beginning. Bazaar has served us well in the past, but there are several compelling reasons for us to transition. And the Xubuntu 18.10 cycle is the perfect time for us to move. |
- | * **Consistent Workflow:** Git is now used by both all of our upstreams. Debian, Xfce, and Shimmer Project all use git. Upstream contributions become easier with a familiar process. | + | * **Consistent Workflow:** Git is now used by both all of our upstreams. Debian, Xfce, and Shimmer Project all use Git. Upstream contributions become easier with a familiar process. |
* **Familiarity: | * **Familiarity: | ||
* **Development Activity:** Git continues to be actively maintained and supported, with regular releases and bug fixes. The last Bazaar release was over two years ago. | * **Development Activity:** Git continues to be actively maintained and supported, with regular releases and bug fixes. The last Bazaar release was over two years ago. | ||
- | * **Application Support:** Many applications provide support for Git in one way or another. Thunar' | + | * **Application Support:** Many applications provide support for Git in one way or another. |
Line 31: | Line 33: | ||
===== Managing Launchpad Projects ===== | ===== Managing Launchpad Projects ===== | ||
- | At the time of writing (May 2018), Launchpad does not have full support for git for it' | + | At the time of writing (May 2018), Launchpad does not have full support for git for its project management features. The following features are not fully implemented. There are ways to work around some of these shortcomings, |
==== Linking Series to Git Branches ==== | ==== Linking Series to Git Branches ==== | ||
- | This is currently not possible. | + | This is currently not possible. |
==== Translation Imports & Exports ==== | ==== Translation Imports & Exports ==== | ||
Launchpad does not currently support automatic synchronization to/from Git branches. Instead, you can create an git-to-bzr code import, and import translations from this Bazaar branch. You can periodically download the translations for a project and sync them manually. | Launchpad does not currently support automatic synchronization to/from Git branches. Instead, you can create an git-to-bzr code import, and import translations from this Bazaar branch. You can periodically download the translations for a project and sync them manually. | ||
+ | |||
+ | ===== Examples ===== | ||
+ | |||
+ | We'll use Xubuntu Documentation ([[https:// | ||
+ | |||
+ | ==== Cloning a Repository ==== | ||
+ | |||
+ | < | ||
+ | cd xubuntu-docs</ | ||
+ | |||
+ | ==== Making Changes ==== | ||
+ | |||
+ | < | ||
+ | git status # Shows changed files | ||
+ | git diff # Shows changes to files | ||
+ | git add Makefile # Adds a single file to be committed | ||
+ | # or | ||
+ | git add -u # Adds all changed files to be committed | ||
+ | git commit -m "Some makefile changes" | ||
+ | git push # Pushes the commit to the repository</ | ||
+ | |||
+ | ==== Pushing to a Branch ==== | ||
+ | |||
+ | Say you have some changes you want want to have merged. Instead of pushing directly to the main repository, you can instead push your own branch. In the below example, you tell git about your new " | ||
+ | |||
+ | * " | ||
+ | * " | ||
+ | * " | ||
+ | * Replace these as necessary. | ||
+ | |||
+ | < | ||
+ | git remote add myremote lp: | ||
+ | git push --set-upstream myremote myfeaturebranch</ | ||
+ | |||
+ | ==== Merging a Branch ==== | ||
+ | |||
+ | < | ||
+ | git clone lp: | ||
+ | cd lightdm-gtk-greeter | ||
+ | |||
+ | # fetch the remote branch | ||
+ | git remote add remotename https:// | ||
+ | git fetch remotename | ||
+ | git merge remotename/ | ||
+ | |||
+ | # push the merge | ||
+ | git push</ | ||
===== Git Repositories ===== | ===== Git Repositories ===== |