1 安裝Github
2 安裝msysgit
3 要配置用戶名和油箱
git config --global user.name <用戶名>
我的命令就是:git config --global user.name mchdbagh
git config --global user.email <油箱>
我的命令就是:git config --global [email protected]
4 驗證有沒有連接上remote遠程服務器
ssh -T [email protected]
5 要生成ssh key
$ ssh -keygen
看到需要輸入密碼的,直接2個回車鍵即可回到主窗口。
去找.ssh裏面的id_isa.pub打開,最好用notepad++打開,的裏面的內容copy出來,然後放到https://網址裏面,加入
如何生成,請看文檔詳細介紹。http://www.worldhello.net/gotgithub/index.html#id6
Git常用命令介紹
git init --初始化項目,剛開始初始化項目的時候使用
git clone --從服務器上克隆到本地,如果服務器上面已經有項目了,直接使用這個命令clone到本地進行使用。
git status --查看版本信息
git add --添加本地文件
git commit --提交更改
git push --tags --將更改推送到服務器
(1) git init操作
- kyman@SKYMAN-CF7E3587 ~
- mkdir test_git
- kyman@SKYMAN-CF7E3587 ~
- cd test_git/
- kyman@SKYMAN-CF7E3587 ~/test_git
- ls
- kyman@SKYMAN-CF7E3587 ~/test_git
- $ git init
- Initialized empty Git repository in c:/Documents and Settings/skyman/test_git/.git/
- ls -a
- .. .git
看到有.git文件
- $ ls -al
- total 0
- drwxr-xr-x 3 skyman Administ 0 Sep 25 23:10 .
- drwxr-xr-x 41 skyman Administ 0 Sep 25 23:10 ..
- drwxr-xr-x 1 skyman Administ 0 Sep 25 23:10 .git
- $
(2) git clone操作
登陸 https://github.com/,看右下角,如圖下圖,找到打開庫的網址把提示mchdbagh/manual56加到後面,網址就是https://github.com/mchdbagh/manual56
打開後,點擊右下角的HTTPS clone URL欄目下方的複製按鈕,就得到了庫的clone地址 https://github.com/mchdbagh/manual56.Git,如圖所示
也可以選擇ssh方式:[email protected]:mchdbagh/manual56.git
git clone [email protected]:mchdbagh/manual56.git;
打開 git clone [email protected]:mchdbagh/helloworld.git
如果需要自定義一個目錄名,可以寫成 git clone [email protected]:mchdbagh/helloworld.git test_hw
檢測是否clone成功,看到有manual56目錄是否存在
- $ ls
- AppData Favorites NTUSER.DAT SendTo _viminfo manual56 wc
- Application Data IECompatCache NetHood Templates admovie.jpg ntuser.dat.LOG ??????????????????
- CMB IETldCache PrintHood UserData client.log ntuser.ini ??????
- Contacts Local Settings PrivacIE VirtualBox VMs extensions ntuserdirect_MyManager.dat
- Cookies My Documents Recent WINDOWS helloworld test_git
(3) git add 操作實驗
- $ cd manual56/
- --查看git當前版本庫的狀態
- $ git status
- # On branch master
- nothing to commit (working directory clean)
- --進入我要修改的章節目錄
- $ cd docs/Chapter_17/
- $ vim 17.5.0.0.0.md --新建一個md文件,裏面簡單寫“only a test”字符串,wq保存退出編輯狀態。
- -- 查看狀態
- $ git status
- # On branch master
- # Untracked files:
- # (use "git add <file>..." to include in what will be committed)
- #
- # 17.5.0.0.0.md --看到有紅顏色的一個新的文件還沒有提交上去,這一行的文件名顯示爲紅色。
- nothing added to commit but untracked files present (use "git add" to track)
添加文件add
git add 17.5.0.0.0.md添加單個文件,多個文件可以用空格來隔開,比如(git add 17.5.0.0.0.md 17.5.0.0.1.md 17.5.0.0.2.md),也可以使用git add -A添加所有的文件。
- --執行添加命令
- $ git add 17.5.0.0.0.md
- --查看單個文件版本狀態
- $ git status 17.5.0.0.0.md
- # On branch master
- # Changes to be committed:
- # (use "git reset HEAD <file>..." to unstage)
- #
- # new file: 17.5.0.0.0.md
- #
- --查看整個庫版本狀態
- $ git status
- # On branch master
- # Changes to be committed:
- # (use "git reset HEAD <file>..." to unstage)
- #
- # new file: 17.5.0.0.0.md
- #
手動用MarkdownPad打開C:\Documents and Settings\skyman\manual56\docs\Chapter_17\17.5.0.0.0.md,在裏面輸入中文字符串,保存退出。然後查看版本庫狀態,顯示綠顏色的表示已經緩存起來了,顯示紅顏色的是修改過的但是沒有緩存起來的。
(4) git commit,修改完之後,進行commit提交git commit -m "Test change", -m 是指定提交信息,必填項目
""內部表示註釋內容,即git修改內容。
- $ git commit -am "Test chanage"
- [master 3e96f90] Test chanage
- 1 file changed, 1 insertion(+), 1 deletion(-)
- $ git status
- # On branch master
- # Your branch is ahead of 'origin/master' by 2 commits.
- #
- nothing to commit (working directory clean)
- --顯示已經提交到本地版本庫了
PPS:
介紹一下git pull
git pull即把代碼更新到本地,經常會遇到這種錯誤
error: Your local changes to 'c/environ.c' would be overwritten by merge. Aborting.
Please, commit your changes or stash them before you can merge.
這個意思是說更新下來的內容和本地修改的內容有衝突,先提交你的改變或者先將本地修改暫時存儲起來。
處理的方式非常簡單,主要是使用git stash命令進行處理,分成以下幾個步驟進行處理。
a) 先將本地修改存儲起來
$ git stash
這樣本地的所有修改就都被暫時存儲起來
。是用git stash list可以看到保存的信息
其中stash@{0}就是剛纔保存的標記。
b)pull內容
暫存了本地修改之後,就可以pull了。
c)還原暫存的內容
$ git stash pop stash@{0}
系統提示如下類似的信息:Auto-merging c/environ.c
CONFLICT (content): Merge conflict in c/environ.c
意思就是系統自動合併修改的內容,但是其中有衝突,需要解決其中的衝突
d)解決文件中衝突的的部分
打開衝突的文件,會看到類似如下的內容:
其中Updated upstream 和=====之間的內容就是pull下來的內容,====和stashed changes之間的內容就是本地修改的內容。碰到這種情況,git也不知道哪行內容是需要的,所以要自行確定需要的內容。
解決完成之後,就可以正常的提交了
git pull後再
(5)把已經修改的文件push到服務器,git push --tags --push所以緩存到本地服務器的文件。
- $ git push origin master
- Counting objects: 13, done.
- Delta compression using up to 2 threads.
- Compressing objects: 100% (8/8), done.
- Writing objects: 100% (10/10), 768 bytes, done.
- Total 10 (delta 6), reused 0 (delta 0)
- To [email protected]:mchdbagh/manual56.git
- e754e68..3e96f90 master -> master
OK成功了,然後打開網址https://github.com/xxxxxx/blob/master/docs/Chapter_17/17.5.0.0.0.md去看提交的新內容,見圖片所示,新建立的文件17.5.0.0.0.md已經成功上傳到remote文件服務器了。