1.git init
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
cd gitosis sudo python setup.py install
4.建立软链接(可选)
ln -s /opt/git /home/git/repositories
5. 更改git用户登录shell
切换到git 用户
将 etc/passwd 文件下的 git❌1000:1000::/home/git:/usr/bin/git-shell(git-shell 其他用户不能登录) git❌1000:1000::/home/git:/bin/sh6.初始化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)