<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Git%E7%B0%A1%E6%98%93%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB</id>
	<title>Git簡易マニュアル - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Git%E7%B0%A1%E6%98%93%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB"/>
	<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=Git%E7%B0%A1%E6%98%93%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB&amp;action=history"/>
	<updated>2026-07-13T14:25:52Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.36.2</generator>
	<entry>
		<id>http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=Git%E7%B0%A1%E6%98%93%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB&amp;diff=1129&amp;oldid=prev</id>
		<title>Hirano: ページの作成:「　gitはプログラム開発の過程のバージョン管理を自動化するツールで、ネットワーク上で複数人でのプログラム開発を行う上…」</title>
		<link rel="alternate" type="text/html" href="http://comp.chem.tohoku.ac.jp/mediawiki/index.php?title=Git%E7%B0%A1%E6%98%93%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB&amp;diff=1129&amp;oldid=prev"/>
		<updated>2026-05-26T04:21:08Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「　gitはプログラム開発の過程のバージョン管理を自動化するツールで、ネットワーク上で複数人でのプログラム開発を行う上…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;　gitはプログラム開発の過程のバージョン管理を自動化するツールで、ネットワーク上で複数人でのプログラム開発を行う上で非常に有効である。下記にgitの基本的な操作を記す。 gitは非常に機能が多いのでその他は各自ググること。git の使用方法を会得するために、[https://github.co.jp/ GitHub]を使用してみるのもいいだろう。個人用 or 外部公開用のリポジトリの作成に加え、リポジトリ用の Wiki の作成など、多くの機能が提供されている。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 初回操作 ==&lt;br /&gt;
&lt;br /&gt;
 git config --global user.name “…”&lt;br /&gt;
 ### ユーザー名の登録&lt;br /&gt;
 &lt;br /&gt;
 git config --global user.email …@***.tohoku.ac.jp&lt;br /&gt;
 ### メールアドレスの登録&lt;br /&gt;
 &lt;br /&gt;
 git clone git@comp.chem.tohoku.ac.jp:~/FreeFlex.git&lt;br /&gt;
 ### 共有リポジトリ(master)からプログラムを新規にコピーする&lt;br /&gt;
&lt;br /&gt;
== gitの構造 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ファイル:git.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
gitでは、ns1内で管理されている大元のファイル(master)と、個々人のローカルリポジトリにあるファイル(origin)、&lt;br /&gt;
&lt;br /&gt;
実際に作業している作業ファイルの3種類が存在する。&lt;br /&gt;
 &lt;br /&gt;
プログラム開発の流れとして、自分の手でプログラムを編集し、下記のgitコマンドを用いて&lt;br /&gt;
 &lt;br /&gt;
まずローカルリポジトリ(origin)にコピーし(commit)、その後リモートリポジトリ(master)に上げる(push)といった作業を繰り返す。&lt;br /&gt;
 &lt;br /&gt;
masterは開発者全員で共有されるため、慎重に作業する必要がある。&lt;br /&gt;
&lt;br /&gt;
== プログラム作成 ==&lt;br /&gt;
…ファイル作成・編集作業、動作確認&lt;br /&gt;
&lt;br /&gt;
 git status&lt;br /&gt;
   ### プログラムを編集したのち、自分がどのファイルをmasterに追加するのかを見ることができる。&lt;br /&gt;
   ### changed not staged for commit の欄では、自分が編集したがaddしていないファイルが表示される。&lt;br /&gt;
   ### changes to be committed の欄では、git commitした際に追加されるファイルが表示される。&lt;br /&gt;
   ### untracked files の欄では、masterに存在しないファイルが表示される。新しいブログラムを追加したい場合はgit addで追加する。&lt;br /&gt;
 git diff&lt;br /&gt;
   ### ローカルリポジトリと現在のプログラムを比較する。&lt;br /&gt;
   ### ※ 無意味な更新がないよう add &amp;amp; commit の前に確認した方が良い。&lt;br /&gt;
 git add File1 File2 …&lt;br /&gt;
   ### commitする予定のファイルを追加する。ここでaddしたものはgit statusで確認できる。&lt;br /&gt;
 git commit&lt;br /&gt;
    ### 作成・編集したファイルをローカルリポジトリ(origin)に保存する。&lt;br /&gt;
    ### commit時、エディタが立ち上がるのでログメッセージを書く。&lt;br /&gt;
    ### ※ タイトルと本文の間を1行空けること（git log --oneline を正しく表示するため）&lt;br /&gt;
    ### この時点ではmasterは更新されていない。&lt;br /&gt;
 git log&lt;br /&gt;
    ### ログの表示&lt;br /&gt;
 git log --oneline&lt;br /&gt;
    ### ログの表示（1行）&lt;br /&gt;
 git commit --amend&lt;br /&gt;
    ### 直前のコミットをやり直す。&lt;br /&gt;
    ### ※ ログの書き間違いやaddのし忘れ等のときに使用する。&lt;br /&gt;
&lt;br /&gt;
…編集, add, commit の繰り返し&lt;br /&gt;
&lt;br /&gt;
== 共有リポジトリ(master)の更新 ==&lt;br /&gt;
 git log&lt;br /&gt;
    ### ログの表示&lt;br /&gt;
    ### ※ pushの前に表示がおかしくないか確認すること&lt;br /&gt;
 git log --oneline&lt;br /&gt;
    ### ログの表示（1行）&lt;br /&gt;
    ### ※ push の前に表示がおかしくないか確認すること&lt;br /&gt;
 git log --name-only&lt;br /&gt;
    ### ログの表示&lt;br /&gt;
    ### commitされたファイルの名前を表示する。意図しないファイルをaddしていないか確認すること。&lt;br /&gt;
 &lt;br /&gt;
 git rebase -i Hash&lt;br /&gt;
    ### ログの編集。詳しくは各自ググる。 &lt;br /&gt;
    ### ※ 編集後のログは、他人も見ることになるので読みやすくすること&lt;br /&gt;
 git push origin master&lt;br /&gt;
    ### コミットされている内容をで共有リポジトリ(master)を更新する。&lt;br /&gt;
    ### すでに他人がプログラムを更新している場合、push が失敗するので下の作業を行う。&lt;br /&gt;
&lt;br /&gt;
== 共有リポジトリのプログラムの取得 ==&lt;br /&gt;
 git pull origin master&lt;br /&gt;
    ### 共有リポジトリから最新のプログラムを取得する。&lt;br /&gt;
    ### ※ 自分のプログラムがなくなるわけではない。&lt;br /&gt;
 git status&lt;br /&gt;
    ### 現在のプログラムと最新のプログラムの競合を確認&lt;br /&gt;
&lt;br /&gt;
…競合箇所の修正、動作確認&lt;br /&gt;
&lt;br /&gt;
… add &amp;amp; commit で修正個所をcommitする。&lt;br /&gt;
&lt;br /&gt;
== git pullができないとき ==&lt;br /&gt;
…しばしばgit pullができない場合(makefileの編集などを行うとpullでも競合しやすい)、以下の作業を行えばよい。&lt;br /&gt;
&lt;br /&gt;
 git stash&lt;br /&gt;
    ### 現在の作業を中断し、ローカルリポジトリの状態に戻す。&lt;br /&gt;
    ### 中断した作業自体は保存され、git stash list で確認できる。&lt;br /&gt;
 git stash list&lt;br /&gt;
    ### stashのリストを表示する。&lt;br /&gt;
 git pull origin master&lt;br /&gt;
    ### 上記作業を行ったのち、git pullしてみる。&lt;br /&gt;
 git stash apply stash@{*}&lt;br /&gt;
    ### *番目のstashの状態に戻す。git pullが成功したのち行う。 &lt;br /&gt;
&lt;br /&gt;
この作業を行うことで、競合があった箇所にHEADとローカルの両方の内容が書かれた状態になり、&lt;br /&gt;
&lt;br /&gt;
どちらかを削除することで競合を解消できる。競合を解消したのち、git pushが通るはずである。&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
 git checkout Hash -- File&lt;br /&gt;
    ### ファイルを過去の位置に戻す。&lt;br /&gt;
 git reset HEAD filename&lt;br /&gt;
    ### 間違えてgit addしてしまった時の取り消し。&lt;br /&gt;
 &lt;br /&gt;
 git push -f origin HEAD^n:master&lt;br /&gt;
    ### リモートリポジトリの更新をn個前のものに戻す。&lt;br /&gt;
    ### 他の人の更新と競合するかもしれない（未確認）ので基本的には使わない。&lt;br /&gt;
 &lt;br /&gt;
 git tag -a v*.* Hash&lt;br /&gt;
    ### タグ（バージョン名。ハッシュとして使える。）を設定する。&lt;br /&gt;
 git tag&lt;br /&gt;
    ### タグを確認する。&lt;br /&gt;
 git push origin v*.*&lt;br /&gt;
    ### リモートにタグを登録&lt;br /&gt;
 vi .gitignore&lt;br /&gt;
    ### ファイル中に記載されている正規表現に当てはまるファイルは git status 中に表示されない。&lt;br /&gt;
 git blame filename&lt;br /&gt;
    ### ファイルを書いた人物、日付等を確認できる。&lt;br /&gt;
&lt;br /&gt;
== サーバーの設定 ==&lt;br /&gt;
場所：リモートサーバー上で git リポジトリを作成するディレクトリ&lt;br /&gt;
git@comp.chem.tohoku.ac.jp:~/XXX.git　など&lt;br /&gt;
&lt;br /&gt;
 git init --bare&lt;br /&gt;
    ### 共有リポジトリの新規作成&lt;br /&gt;
 vi ~/FreeFlex.git/hooks/post-receive&lt;br /&gt;
    ### メール送信設定のためのスクリプト&lt;br /&gt;
&lt;br /&gt;
リモートリポジトリ更新時のメール配信先を追加・削除する際には post-receive ファイルを編集すれば良い．&lt;/div&gt;</summary>
		<author><name>Hirano</name></author>
	</entry>
</feed>