• Home
  • Raw
  • Download

Lines Matching +full:- +full:- +full:git

1 \input texinfo @c -*- texinfo -*-
2 @documentencoding UTF-8
4 @settitle Using Git to develop FFmpeg
7 @center @titlefont{Using Git to develop FFmpeg}
16 This document aims in giving some quick references on a set of useful Git
18 provided directly by Git:
21 git --help
22 man git
28 git <command> --help
29 man git-<command>
35 @url{http://gitref.org, Git Reference} website.
37 For more information about the Git project, visit the
38 @url{http://git-scm.com/, Git website}.
42 What follows now is a basic introduction to Git and some FFmpeg-specific
47 @section Get Git
49 You can get Git from @url{http://git-scm.com/}
56 git clone https://git.ffmpeg.org/ffmpeg.git <target>
62 git clone git@@source.ffmpeg.org:ffmpeg <target>
69 git clone gil@@ffmpeg.org:ffmpeg-web <target>
74 (Note that @var{gil} stands for GItoLite and is not a typo of @var{git}.)
76 If you don't have write-access to the ffmpeg-web repository, you can
77 create patches after making a read-only ffmpeg-web clone:
80 git clone git://ffmpeg.org/ffmpeg-web <target>
88 git config --global core.autocrlf false
96 git pull (--rebase)
104 @command{--rebase} (see below) is recommended.
110 git pull --rebase
121 git add [-A] <filename/dirname>
122 git rm [-r] <filename/dirname>
125 Git needs to get notified of all changes you make to your working
133 git diff <filename(s)>
142 git log <filename(s)>
151 git status
161 git diff --check
172 For cosmetics-only commits you should get (almost) empty output from
175 git diff -w -b <filename(s)>
181 git status
187 git add [-i|-p|-A] <filenames/dirnames>
190 Make sure you have told Git your name, email address and GPG key
193 git config --global user.name "My Name"
194 git config --global user.email my@@email.invalid
195 git config --global user.signingkey ABCDEF0123245
198 Enable signing all commits or use -S
201 git config --global commit.gpgsign true
204 Use @option{--global} to set the global configuration for all your Git checkouts.
206 Git will select the changes to the files for commit. Optionally you can use
212 git commit
215 Git will commit the selected changes to your current local branch.
221 git config --global core.editor
233 separated by an empty line. These details should not exceed 60-72 characters
255 the context, Git provides that information.
261 the patch by @command{git format-patch}.
263 Common mistakes for the first line, as seen in @command{git log --oneline}
270 git format-patch <commit> [-o directory]
277 git format-patch origin/master
285 git format-patch -n
294 git send-email <commit list|directory>
297 will send the patches created by @command{git format-patch} or directly
300 Note that this tool must often be installed separately (e.g. @var{git-email}
301 package on Debian-based distros).
306 Git automatically tracks such changes, making those normal commits.
310 git add [-A] .
311 git commit
315 @chapter Git configuration
318 your personal Git installation and your local FFmpeg repository.
320 @section Personal Git installation
322 Add the following to your @file{~/.gitconfig} to help @command{git send-email}
323 and @command{git format-patch} detect renames:
332 In order to have @command{git send-email} automatically send patches
333 to the ffmpeg-devel mailing list, add the following stanza
334 to @file{/path/to/ffmpeg/repository/.git/config}:
338 to = ffmpeg-devel@@ffmpeg.org
346 git reset <commit>
349 @command{git reset} will uncommit the changes till @var{<commit>} rewriting
353 git commit --amend
359 git rebase -i origin/master
366 @command{git reset}, @command{git commit --amend} and @command{git rebase}
372 git revert <commit>
375 @command{git revert} will generate a revert commit. This will not make the
381 git push origin master --dry-run
387 Git will prevent you from pushing changes if the local and remote trees are
391 git remote add <name> <url>
398 git push <remote> <refspec>
402 Omitting @var{<refspec>} makes @command{git push} update all the remote
407 Since version 1.7.1 Git supports @samp{:/foo} syntax for specifying commits
411 git show :/'as revision 23456'
414 will show the svn changeset @samp{r23456}. With older Git versions searching in
415 the @command{git log} output is the easiest option (especially if a pager with
421 git checkout -b svn_23456 :/'as revision 23456'
424 or for Git < 1.7.1 with
427 git checkout -b svn_23456 $SHA1
430 where @var{$SHA1} is the commit hash from the @command{git log} output.
436 is small, fast and secure. Especially it results in small signatures in git.
439 gpg --default-new-key-algo "ed25519/cert,sign+cv25519/encr" --quick-generate-key "human@@server.com"
442 When generating a key, make sure the email specified matches the email used in git as some sites li…
446 @chapter Pre-push checklist
456 wrong. You can see what will be pushed by running the git push command
457 with @option{--dry-run} first. And then inspecting the commits listed with
458 @command{git log -p 1234567..987654}. The @command{git status} command
467 @item if fate fails due to missing samples run @command{make fate-rsync} and retry
479 merge request to ffmpeg-devel. You can also push them directly but this is not
485 problems with the Git server.