## 安裝git服務器
## 安裝git
sudo apt-get install git
## 建立git用戶
sudo adduser git
## 修改git用戶
* 設置不能登錄
vim /etc/passwd
找到git:x:1001:1001:,,,:/home/git:/bin/bash
修改為git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
* 建立配置
sudo mkdir /home/git/.ssh
sudo touch /home/git/.ssh/authorized_keys
* 添加自己電腦(開發用的虛擬機
*
*
*
* )的rsa簽名(見下面說明)
id_rsa_pub在C:\Users\Administrator\.ssh
sudo cat id_rsa.pub >> /home/git/.ssh/authorized_keys
* 修改權限
sudo chown -R git:git /home/git/.ssh
sudo chmod 600 /home/git/.ssh/authorized_keys
## 配置git服務器
* 建立服務器目錄
sudo mkdir /home/git/gitcode
cd gitcode
sudo git init --bare b2b2c.git
* 修改權限
sudo chown -R git:git /home/git/gitcode
## 本地的一些操作。
* 生成rsa簽名(結合上面的導入到authorized_keys)中(位於 ~/.ssh/id_rsa.pub)
//ssh-keygen -t rsa
* clone項目
git clone git@172.168.4.192:gitcode/b2b2c.git
git clone git@202.104.122.154:gitcode/b2b2c.git
ssh://git@447167.cicp.net:43352/~/gitcode/b2b2c.git
ssh://git@202.104.122.154/~/gitcode/b2b2c.git
## git 的一些基本操作
git add {{file || *}}
git rm {{file || * }}
git commit -m "{{commit message}}"
git pull origin/master
git push origin/master
# GIT 入門(不涉及分支功能)
## 第一步安裝
> windows
####使用gitbash
百度搜索gitbash 並且安裝。使用和linux 完全一致
####使用小烏龜git 或者github客戶端
百度搜索即可安裝
> linux
sudo apt-get install git
## 第二部分配置
> gitbash 和 linux 一樣
git config --global user.name {{you name}}
git config --global user.email {{you email}}
> 小烏龜git
目前不清楚怎么配置
##第三部分配置遠程倉庫
#### 生成ssh key
> gitbash
ssh-keygen -t rsa -C "yangyao@ttyun.com(yangyao)"
> 小烏龜git 步驟比較復雜
先使用gitbash生成ssh key
然后使用PuTTY Key Generator 生成小烏龜專用的 putty key
參考文章http://www.7down.com/article/86528.html
### 將生成的公鑰交給運維
## 第四部分git的基本操作
> clone代碼
git clone git@172.168.6.15:code.api.ttyun.com
> 查看文件狀態
git status
>添加單個文件到暫存區
git add {{filename}}
> 添加多個文件,使用空格隔開
git add {{file1}} {{file2}}
> 添加目錄下面的所有文件
git add custom/*
> 從git倉庫中刪除文件 (目錄也是和添加一樣的方式)
git rm {{filename}}
> 將代碼commit到本地
git commit -m "a simple message"
> 拉取遠程代碼
git pull origin master
> 推送代碼到遠程
git push origin master
## 高級功能
>查看提交日志
git log
>查看某個文件的更新記錄(恢復文件很有效)
git log -p {{filename}}
> 撤銷add的修改
git checkout {{filename}}
> 撤銷本地commit的修改
git log // 查詢commit id
git reset {{commit id}}
> 只撤銷commit中的一個文件
git log -p {{filename}} //查詢commit id
git reset {{commit id}} {{filename}}
> 不小心刪除了未加入暫存區的文件或者目錄
git checkout {{filename}}
## Q & A
(1)GIT pull 不到代碼
執行git status 看本地是否有未解決的沖突
(2)pull的時候pull到了很多代碼,並且打開了一個 vim窗口
直接 :wq 退出
(3)pull代碼出現沖突
敲命令 git mergetool打開vim窗口進行合並
(4)提示沖突 但是 gitmergetool提示沒有可以合並的沖突
說明有沒有提交的文件和git有沖突
先commit沖突的文件,然后再pull 最后進行沖突的修改
(5)修改完沖突之后,git status 有很多文件怎么辦?
直接執行 git commit 不帶任何參數
(6).gitignore文件的作用是什么。
.gitignore文件可以把某些目錄或者文件排除在git倉庫之外,一個項目最好只維護一個.gitignore文件。
如果有人修改這個文件,必須把發送文件給每個開發者。
(7)如果想把某個目錄加到git倉庫,但是里面的文件不放在倉庫管理怎么辦?
在該目錄下添加一個.gitkeep的文件
## git團隊開發中需要注意的一些問題。
1. 不要擅自解決沖突,遇到沖突一定要找到當事人。
2. 修改了.gitinore文件 需要發送給每一個人
3. 在push前一定要先pull一下,pull成功了再push
4. 除非是合並提交,非自己修改的文件不要提交到倉庫
5. 不要用刪除的方式來解決沖突.