0


非常好用的版本系统控制工作-Git

Git用于跟踪项目中的协作工作,它是通过分布式图论树模型(Graph theory tree model)来实现跟踪的。

比如说跟踪一份文件随着时间推移的编辑变化。我们可以定期使用git对文件内容进行快照。这样我们就可以查看或者回滚到任意快照。Git除了可以跟踪文件,还可以跟踪目录的变化。

初始化仓库

  • 使用git的第一步就是初始化仓库(repository , 又名 repo)
 cd your_directory
 git init to create a repository.

demo:

                                                                                
┌──(kali㉿kali)-[~/dev/Bear]
└─$ cd ~/dev/Bear                                                              
                                                                                
┌──(kali㉿kali)-[~/dev/Bear]
└─$ git init                                                                1 ⚙
hint: Using'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint:     git config --global init.defaultBranch <name>
hint: 
hint: Names commonly chosen instead of 'master' are 'main','trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint: 
hint:     git branch -m <name>
Initialized empty Git repository in /home/kali/dev/Bear/.git/
    
──(kali㉿kali)-[~/dev/Bear]
└─$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    a.out
    hello.cpp
    hello.h
    readme.txt

nothing added to commit but untracked files present (use "git add" to track)

初始化仓库后,我们就可以得到以下这些东西:
1.使用master作为初始分支的名称。这是默认的分支。如果我们不想使用master作为我们仓库的初始分支的名字。(初始仓库后至少要有一个分支,第一个分支就是初始分支,初始分支会在初始化仓库后一同创建),那么在执行

git init

前,先使用下面的命令配置一下仓库的初始分支的默认名字,如我们要用develop作为默认分支的名字:

──(kali㉿kali)-[~]
└─$ git config --global init.defaultBranch develop

──(kali㉿kali)-[~]
└─$ cd ~/dev/Lion

──(kali㉿kali)-[~/dev/Lion]
└─$ git init
Initialized empty Git repository in /home/kali/dev/Lion/.git/

──(kali㉿kali)-[~/dev/Lion]
└─$ git status
On branch develop

No commits yet

2.如果在初始化仓库后,想修改当前仓库的初始分支的名字

──(kali㉿kali)-[~/dev/Bear]
└─$ git status
On branch master

──(kali㉿kali)-[~/dev/Bear]
└─$ git branch -m main

──(kali㉿kali)-[~/dev/Bear]
└─$ git status
On branch main

暂存变化到仓库

对于我们刚刚初始的仓库的文件或是新添加的文件,我们必须通过以下命令告诉git,让它把文件或目录的变化暂存到仓库。

git add filename 

下面的git命令是告诉git把这一个或几文件的变化都暂存到仓库:

──(kali㉿kali)-[~/dev/Bear]
└─$ git add a.out

──(kali㉿kali)-[~/dev/Bear]
└─$ git add hello.cpp hello.h

可以通过

git status -u

查看还有没有文件没有被跟踪的。u 就是untracked。

──(kali㉿kali)-[~/dev/Bear]
└─$ git status -u

┌──(kali㉿kali)-[~/dev/Bear]
└─$ git status -u
On branch main

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    readme.txt

nothing added to commit but untracked files present (use "git add" to track)

我们可以通过下面的git命令把当前目录下的变化都暂存到仓库:

──(kali㉿kali)-[~/dev/Bear]
└─$ git add .

提交

git commit

提交命令,会为暂存的变化创建一个提交,此时会有一个快照与之对应。

git commit –m “your message”

如果我们此时将一个文件修改成另外一个名字,如把readme.txt改名为notice.txt,然后将这个新文件暂存到仓库,再提交:

──(kali㉿kali)-[~/dev/Bear]
└─$ git add notice.txt

──(kali㉿kali)-[~/dev/Bear]
└─$ git commit -m "notice.txt is added"

上面会告诉git,把notice.txt暂存到仓库,然后为这些暂存创建一个提交,产生一个新快照与之对应。注意,我们没有告诉git,readme.txt已经被我们改名了,对于git来说这个改名的动作就是把前面的文件删除,创建一个新的文件。因为这个删除这一件事,我们并没有明确告诉git,所以在新快照中还能看到readme.txt。所有我们可以使用

git add .

把git侦察到的变化(包括删除文件)都暂存到仓库,再提交。此时readme.txt就没有了。

──(kali㉿kali)-[~/dev/Bear]
└─$ git add .

──(kali㉿kali)-[~/dev/Bear]
└─$ git commit -m "final commit"

.gitignore文件的使用

.gitignore

这份文件包括了一个文件的列表,当使用

git add .

暂存变化到仓库时,git会先查看目录里的

.gitignore

文件里的文件列表,然后把它们的变化都忽略。

.gitignore

文件里可以使用使用 “” 通配符去配匹文件。如“.txt"就配匹所有以

.txt

结尾的文件。

我们也可以使用在名字后加 “/” ,即忽略那个目录下的变化。如

hello/

,就是把hello目录下的变化都忽略。

github

上面都是些比较简单的使用,对于合并的问题,请参考我其他的文章。下面略略提一下github。
GitHub存放我们代码的方式,与我们本地仓库没有区别。

  • 先克隆远程仓库到本地
git clone [email protected]:username/repo_name.git
  • 如果要把远程仓库的提交更新的本地可以使用git pull命令
  • 如果要把本地仓库的提交推送到远程仓库可以使用git push命令
标签: git github linux

本文转载自: https://blog.csdn.net/weixin_40763897/article/details/128748705
版权归原作者 WongKyunban 所有, 如有侵权,请联系我们删除。

“非常好用的版本系统控制工作-Git”的评论:

还没有评论