使用git管理項目是開發人員必備的技能,下面就介紹如何使用git將本地文件管理並且同步到github上面。
小白可以參考
【將本地文件git到遠程github倉庫】
創建SSH-key並且在github中添加認證
在本地用戶的.ssh文件下面生成:
在github的setting中進行綁定:
驗證時候綁定成功!
在gitee、bitbucket等git管理的代碼託管上面的操作與上類似;
將本地倉庫與遠程github中的倉庫關聯
要關聯一個遠程庫,使用命令
git remote add origin git@server-name:path/repo-name.git
git remote add origin [email protected]:gqzdev/vue-start.git
關聯後,使用命令
第一次推送master分支的所有內容;
git push -u origin master
由於遠程庫是空的,我們第一次推送master分支時,加上了 –u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以後的推送或者拉取時就可以簡化命令。
此後,每次本地提交後,只要有必要,就可以使用命令
#推送最新修改;
git push origin master
分佈式版本系統的最大好處之一是在本地工作完全不需要考慮遠程庫的存在,也就是有沒有聯網都可以正常工作,而SVN在沒有聯網的時候是拒絕幹活的!當有網絡的時候,再把本地提交推送一下就完成了同步,真是太方便了!
刪除本地文件後,想從遠程倉庫中重新Pull最新版文件。
Git提示:up-to-date,但未得到刪除的文件
原因:當前本地庫處於另一個分支中,需將本分支Head重置至master.
git checkout master
git reset --hard
git 強行pull並覆蓋本地文件
git fetch --all
git reset --hard origin/master
git pull
參考資料
1.Why does Git say my master branch is “already up to date” even though it is not?
2. why-does-git-say-my-master-branch-is-already-up-to-date-even-though-it-is-not
其他git命令
1)git help <command> # 顯示command的help
2)git show # 顯示某次提交的內容 git show $id
3)git co -- <file> # 拋棄工作區修改
4)git co . # 拋棄工作區修改
5)git add <file> # 將工作文件修改提交到本地暫存區
6)git add . # 將所有修改過的工作文件提交暫存區
7)git rm <file> # 從版本庫中刪除文件
8)git rm <file> --cached # 從版本庫中刪除文件,但不刪除文件
9)git reset <file> # 從暫存區恢復到工作文件
10)git reset -- . # 從暫存區恢復到工作文件
11)git reset --hard # 恢復最近一次提交過的狀態,即放棄上次提交後的所有本次修改
12)git ci <file> git ci . git ci -a # 將git add, git rm和git ci等操作都合併在一起做 git ci -am "some comments"
13)git ci --amend # 修改最後一次提交記錄
14)git revert <$id> # 恢復某次提交的狀態,恢復動作本身也創建次提交對象
15)git revert HEAD # 恢復最後一次提交的狀態
16)git diff <file> # 比較當前文件和暫存區文件差異 git diff
17)git diff <id1><id1><id2> # 比較兩次提交之間的差異
18)git diff <branch1>..<branch2> # 在兩個分支之間比較
19)git diff --staged # 比較暫存區和版本庫差異
20)git diff --stat # 僅僅比較統計信息
21)git log git log <file> # 查看該文件每次提交記錄
22)git log -p <file> # 查看每次詳細修改內容的diff
23)git log -p -2 # 查看最近兩次詳細修改內容的diff
24)git log --stat #查看提交統計信息
25)git br -r # 查看遠程分支
26)git br <new_branch> # 創建新的分支
27)git br -v # 查看各個分支最後提交信息
28)git br --merged # 查看已經被合併到當前分支的分支
29)git br --no-merged # 查看尚未被合併到當前分支的分支
30)git co <branch> # 切換到某個分支
31)git co -b <new_branch> # 創建新的分支,並且切換過去
32)git co -b <new_branch> <branch> # 基於branch創建新的new_branch
33)git co $id # 把某次歷史提交記錄checkout出來,但無分支信息,切換到其他分支會自動刪除
34)git co $id -b <new_branch> # 把某次歷史提交記錄checkout出來,創建成一個分支
35)git br -d <branch> # 刪除某個分支
36)git br -D <branch> # 強制刪除某個分支 (未被合併的分支被刪除的時候需要強制)
37)git merge <branch> # 將branch分支合併到當前分支
38)git merge origin/master --no-ff # 不要Fast-Foward合併,這樣可以生成merge提交
39)git diff > ../sync.patch # 生成補丁
40)git apply ../sync.patch # 打補丁
41)git apply --check ../sync.patch #測試補丁能否成功
42)git stash # 暫存
43)git stash list # 列出所有stash
44)git stash apply # 恢復暫存的內容
45)git stash drop # 刪除暫存區
46)git pull # 抓取遠程倉庫所有分支更新併合併到本地
47)git pull --no-ff # 抓取遠程倉庫所有分支更新併合併到本地,不要快進合併
48)git fetch origin # 抓取遠程倉庫更新
49)git merge origin/master # 將遠程主分支合併到本地當前分支
50)git co --track origin/branch # 跟蹤某個遠程分支創建相應的本地分支
51)git co -b <local_branch> origin/<remote_branch> # 基於遠程分支創建本地分支,功能同上
52)git push # push所有分支
53)git push origin master # 將本地主分支推到遠程主分支
54)git push -u origin master # 將本地主分支推到遠程(如無遠程主分支則創建,用於初始化遠程倉庫)
55)git push origin <local_branch> # 創建遠程分支, origin是遠程倉庫名
56)git push origin <local_branch>:<remote_branch> # 創建遠程分支
57)git push origin :<remote_branch> #先刪除本地分支(git br -d <branch>),然後再push刪除遠程分支
58)git remote -v # 查看遠程服務器地址和倉庫名稱
59)git remote show origin # 查看遠程服務器倉庫狀態
60)git remote add origin git@ github:robbin/robbin_site.git # 添加遠程倉庫地址
61)git remote set-url origin git@ github.com:robbin/robbin_site.git # 設置遠程倉庫地址(用於修改遠程倉庫地址) git remote rm <repository> # 刪除遠程倉庫
62)git clone --bare robbin_site robbin_site.git # 用帶版本的項目創建純版本倉庫
63)scp -r my_project.git git@ git.csdn.net:~ # 將純倉庫上傳到服務器上
64)mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服務器創建純倉庫
65)git remote add origin git@ github.com:robbin/robbin_site.git # 設置遠程倉庫地址
66) git push -u origin master # 客戶端首次提交
67) git push -u origin develop # 首次將本地develop分支提交到遠程develop分支,並且track
68) git remote set-head origin master # 設置遠程倉庫的HEAD指向master分支
其他教程
Git參考手冊
http://livoras.com/post/28
使用git和github進行協同開發流程
https://github.com/tiimgreen/github-cheat-sheet/blob/master/README.zh-cn.md
github祕籍
http://onlywei.github.io/explain-git-with-d3/
https://github.com/onlywei/explain-git-with-d3
動畫方式練習git
http://www.cnblogs.com/rubylouvre/archive/2013/01/24/2874694.html
如何在github上fork一個項目來貢獻代碼以及同步原作者的修改
https://github.com/phodal/github-roam
GitHub 漫遊指南
http://blog.chinaunix.net/uid-26495963-id-3367377.html
github readme.md 添加圖片
http://www.imooc.com/learn/390
版本控制入門 – 搬進 Github
http://www.imooc.com/learn/208
版本管理工具介紹—Git篇
http://m.nowcoder.com/courses/2
GitHub&Git入門基礎
http://f2e.im/t/7
http://htmlpreview.github.com/
github 在線預覽
https://chrome.google.com/webstore/detail/octotree/bkhaagjahfmjljalopjnoealnfndnagc/related
github插件
http://www.jefftk.com/icdiff
一個能並列高亮顯示文件比較結果的小工具