23

Gitには、サードパーティによって提供された一連のツールが含まれています。これらのツールを正しく使用する方法がわかりません。

たとえば、 git-subtreeを使用したいと思います。これを使用する方法はいくつかあるようです。

  1. 私のパスにコピー

     cp /path/to/git-subtree.sh /usr/local/bin/git-subtree
     chmod +x /usr/local/bin/git-subtree
    

    正常に動作し、少しハッキーな感じがします。

  2. 私のパスへのシンボリックリンク

     chmod +x /path/to/git-subtree.sh
     ln -s /path/to/git-subtree.sh /usr/local/bin/git-subtree
    

    また、動作し、わずかにハッキーが少ないと感じます

  3. gitエイリアスを使用する

    グローバル.gitconfigファイルに以下を追加します。

     [alias]
         subtree = !/path/to/git-subtree.sh
    

    その後、古き良きchmodをもう一度:

     chmod +x /path/to/git-subtree.sh
    

    動作し、すべてが素晴らしく、Gitっぽい感じがします。

  4. Makefileを使用する

    INSTALLファイルごと。

     cd /path/to/git-subtree.sh
     make
     make install
     make install-doc
    

    動作しません。存在しないパスにインストールしようとします。おそらくこれは、ソースからインストールするのではなく、homebrewを使用してgitをインストールしたためですか?私は怠惰すぎて調査できません。私はすでに3つの実用的な選択肢があります。:)

だから私の質問は、これらのどれがgit-contribアドオンをインストールするための好ましい方法ですか?望ましい方法さえありますか?上記のオプションよりも優れていると私が提案していない別のオプションはありますか?

4

5 に答える 5

10

git / contrib / git-subtreeから:

git-subtreeの
インストール方法==========================

まず、最上位のソースディレクトリからビルドします。

次に、contrib / subtreeで、次のコマンドを実行します。

 make
 make install
 make install-doc

configureを使用してメインビルドを実行した場合、git-subtreeビルドはそれらの設定を取得します。そうでない場合は、プレフィックスの値を指定する必要があります。

 make prefix=<some dir>
 make prefix=<some dir> install
 make prefix=<some dir> install-doc

テストを実行するには、最初にgit-subtreeをメインビルドエリアにコピーして、新しくビルドされたgitがそれを見つけられるようにします。

 cp git-subtree ../..

それで:

 make test

これが機能することを確認しました。

  1. 既存のgit経由でダウンロードしたソース
  2. インストールされたビルド部門

    $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
    
  3. 最新のリリースブランチをチェックしてビルドする

    $ git co v1.7.11.3  
    $ make prefix=/usr/local all  
    $ sudo make prefix=/usr/local install  
    
  4. contrib/subtreeをビルドしてインストールします

    $ cd contrib/subtree  
    $ make  
    $ make install  
    $ make install-doc   
    
  5. すべてが機能することを確認します

    /usr/local/bin/git  
    [todd@montreal-01 subtree ((v1.7.11.3))]$ git --version  
    git version 1.7.11.3  
    

確認してください。最新のgitがあります。

[todd@montreal-01 subtree ((v1.7.11.3))]$ git subtree  
usage: git subtree add   --prefix=<prefix> <commit>  
    or: git subtree merge --prefix=<prefix> <commit>  
    or: git subtree pull  --prefix=<prefix> <repository> <refspec...>  
    or: git subtree push  --prefix=<prefix> <repository> <refspec...>  
    or: git subtree split --prefix=<prefix> <commit...>

    -h, --help            show the help  
    -q                    quiet  
    -d                    show debug messages  
    -P, --prefix ...      the name of the subdir to split out  
    -m, --message ...     use the given message as the commit message for the merge commit  

options for 'split'  
    --annotate ...        add a prefix to commit message of new commits  
    -b, --branch ...      create a new branch from the split subtree  
    --ignore-joins        ignore prior --rejoin commits  
    --onto ...            try connecting new tree to an existing one  
    --rejoin              merge the new branch back into HEAD  

options for 'add', 'merge', 'pull' and 'push'  
    --squash              merge subtree changes as a single commit  

確認してください。サブツリーが機能しています。

于 2012-07-23T13:31:20.760 に答える
8

これが私のために働いた最も簡単なことで、Ubuntu12.10にgit-subtreeをインストールします:

コードを取得する

git clone https://github.com/git/git.git --depth=1
cd git/contrib/subtree
make

gittoolsディレクトリに「インストール」します

sudo cp git-subtree /usr/lib/git-core/

マニュアルページには、小さなインストールではないasciidocが必要ですが、持っている場合は次のようになります。

make doc
gzip git-subtree.1
sudo cp git-subtree.1.gz /usr/share/man/man1

以上です。

于 2012-11-27T09:31:05.077 に答える
4

Contribsは役立つもののコレクションです。それらをパッケージとしてインストールすることはありません。たとえば、タブ補完をインストールするには、.bash_profileスクリプトからそのスクリプトを取得するだけです。そのフォルダ内の各投稿には、独自の使用方法があります。

ソースからgitをコンパイルすることに関して

make
sudo make install

すべての前提条件をインストールした後。

于 2012-07-22T20:01:50.427 に答える
2

これらはすべて、必要以上に複雑に見えます..
(install.shが最近追加されたためか?)
これが私にとってうまくいったことです。またはそう思われます。

# go to a directory where it's ok to put temporary stuff
cd ~
git clone git://github.com/apenwarr/git-subtree.git
cd git-subtree/
# shell script does the job for you.
sudo sh ./install.sh
cd ..
# remove the git cloned stuff, now that all relevant things have been copied (we hope)
rm -r git-subtree

# test that it works
git subtree
# should print some help/usage stuff.

ほとんどそれだけを言っている指示があります:
https ://github.com/apenwarr/git-subtree/blob/master/INSTALL

私はそれより少し愚かです。シェルスクリプトを実行する前に、Thingを任意の場所にダウンロード(git clone)する必要があり、このようなものは後で破棄できることを伝える必要があります。

install.shの内容は非常にわかりやすくなっています
。https:
//github.com/apenwarr/git-subtree/blob/master/install.shinstall.shを提供しないgitthingieをインストールしたい場合それ自体で、これは開始する場所である可能性があります。

于 2013-02-28T23:24:49.780 に答える
0

以下のすべてを1つのコマンドで実行し、Ubuntuでのみテストします。

curl -L https://raw.github.com/gist/3426227 | bash

さて、これがubuntuのパッケージとしてgitと一緒に最新のgitをインストールする方法です

パッケージとしてそれを行うには(推奨):

sudo apt-get remove git -y
sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev asciidoc

asciidocをインストールしない場合は、以下のmaketarget'install-doc'の行を無視してください。

これにより、マスター/最新のタグ付きリリースがチェックアウトされ、 checkinstallをパッケージとしてインストールされます。

git clone https://github.com/git/git.git
cd git
make prefix=/usr/local all
sudo checkinstall --pkgname=git make prefix=/usr/local install

その後、貢献:

cd contrib/subtree
make prefix=/usr/local
sudo checkinstall --pkgname=git-subtree make prefix=/usr/local install

...ホームフォルダからファイルを除外するかどうかの質問にyes答えます。y

sudo checkinstall --pkgname=git-subtree-doc make prefix=/usr/local install-doc

...ホームフォルダからファイルを除外するかどうかの質問にyes答えます。y

これで、gitパッケージを処理できます。

dpkg -r git

およびサブツリーパッケージ:

dpkg -r git-subtree
dpkg -r git-subtree-doc

後でハードドライブのスペースを占有するラテックスperlスクリプトの半分のギガバイトを持ちたくない場合:

sudo apt-get remove asciidoc -y
sudo apt-get autoremove -y

またはそのすべて(すべてのビルド部門)

sudo apt-get remove -y libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev asciidoc
sudo apt-get autoremove -y

必要な基本的なコマンドを提供してくれた@toddgに感謝します。

git subtree --help正しいマニュアルページをまだ検索できていません。

于 2012-08-22T14:26:25.170 に答える