1. git init
2.git status
3.git add file
(into stage) git add '*.txt'
git reset file
(unstage)
git rm --cached <file>..
to unstage
4.git commit -m "your comments"
5.git log [--summary]
6.git remote add origin https://github.com/try-git/try_git.git
git remote add origin server:/dir/xxx.git
7.git push -u origin master
(-u rember the paramters. next time , just type git push
) (git stash?)
8. git diff HEAD
(和最近一次提交的区别)
9.git diff --staged
(查看stage 区和工作区的不同)
10.git checkout --<file>
(-- 表示后面没有参数 会退到最后一次提交file 的时候)
11.git checkout branchname
(切换到某一分支)
12.git checkout -b branchnaem
(创建新分支并切换到分支)
13.git rm '*.txt'
(删除不必要的文件, 通常在分支中执行)
git rm -r directory
(递归删除文件夹)
14.git merge branchname
(合并分支, 当前处在master分支上)
15.git branch -d [-f] branchname
(合并完成后,可以删除分支了
注意: -d 选项不允许删除未合并的分支 用-f 可解决)
16.git branch -D branchname
(-D 相当于 -d -f 的 结合强制删除)
17.git push
server 搭建
1.安装python 工具 (为了安装 gitosis)
apt-get install python-setuptools
2. 下载gitosis (用于权限管理)
git clone https://github.com/tv42/gitosis.git
3.安装git
sudo python setup.py install
4.建立软链接(可选)
ln -s /opt/git /home/git/repositories
gitosis 默认的存库路径为/home/git/ 下, 而我们的仓库可能在其他路径(比如/opt/git/ ), 可以建立软链接
5. 更改git用户登录shell
切换到git 用户
将 etc/passwd 文件下的
git❌1000:1000::/home/git:/usr/bin/git-shell(git-shell 其他用户不能登录)
git❌1000:1000::/home/git:/bin/sh
6.初始化gitosis
sudo -H -u git gitosis-init < /tmp/id_dsa.pub
Initialized empty Git repository in /opt/git/gitosis-admin.git/
Reinitialized existing Git repository in /opt/git/gitosis-admin.git/
gitosis 也是通过gitosis-admin 工程来管理 用户权限的,
用此公钥初始化gitosis,只有公钥所对用的用户可以修改 gitosis-admin
7.更改权限
sudo chmod 755 /opt/git/gitosis-admin.git/hooks/post-update
8.测试
git clone git@gitserver:gitosis-admin.git
cd gitosis-admin
./gitosis.conf :指定用户和权限
./keydir/scott.pub :存储用户的公钥,每个用户一个,以用户名命名
修改完之后要push 后才生效
tips
- git commit -am "comments"
-a 的作用, 如果你不是通过git rm 删除文件(直接删除), 则还需要再用git rm 删除一次, 可以通过 -a 选项在提交时自动删除不存在的文件 - 合并冲突 (merge conflicts)